summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/ODRHash.cpp
Commit message (Collapse)AuthorAgeFilesLines
* [ODRHash] Don't hash friend functions.Richard Trieu2018-01-121-0/+2
| | | | | | | | In certain combinations of templated classes and friend functions, the body of friend functions does not get propagated along with function signature. Exclude friend functions for hashing to avoid this case. llvm-svn: 322350
* [ODRHash] Disable hashing on methods.Richard Trieu2017-12-231-0/+3
| | | | | | | Turn off hashing for class methods, but leave it on for other functions. This should get the buildbot to green for the time being. llvm-svn: 321396
* [ODRHash] Support ODR violation detection in functions.Richard Trieu2017-12-231-0/+30
| | | | | | | Extend the hashing to functions, which allows detection of function definition mismatches across modules. This is a re-commit of r320230. llvm-svn: 321395
* [ODRHash] Canonicalize Decl's before processing.Richard Trieu2017-12-211-0/+1
| | | | | | | Canonicalizing the Decl before processing it as part of the hash should reduce issues with non-canonical types showing up as mismatches. llvm-svn: 321319
* Revert r320230 to fix buildbots.Richard Trieu2017-12-091-30/+0
| | | | llvm-svn: 320239
* [ODRHash] Support ODR violation detection in functions.Richard Trieu2017-12-091-0/+30
| | | | | | | Extend the hashing to functions, which allows detection of function definition mismatches across modules. llvm-svn: 320230
* [ODRHash] Add base classes to hashing CXXRecordDecl.Richard Trieu2017-09-301-0/+8
| | | | llvm-svn: 314581
* [ODRHash] Diagnose differing template parameters.Richard Trieu2017-08-231-1/+54
| | | | llvm-svn: 311519
* [ODRHash] Move into anonymous namespace. NFC.Benjamin Kramer2017-08-201-0/+4
| | | | llvm-svn: 311286
* [ODRHash] Treat some non-templated classes as templated.Richard Trieu2017-08-051-2/+6
| | | | | | | | | | When using nested classes, if the inner class is not templated, but the outer class is templated, the inner class will not be templated, but may have some traits as if it were. This is particularly evident if the inner class refers to the outer class in some fashion. Treat any class that is in the context of a templated class as also a templated class. llvm-svn: 310158
* [ODRHash] Revert r307743 which reverted r307720Richard Trieu2017-07-151-0/+2
| | | | | | | Reapply r307720 to allow processing of constructors and destructors. Reuse the diagnostics for CXXMethodDecl for them. llvm-svn: 308077
* [ODRHash] Avoid taking the types of FunctionDecl'sRichard Trieu2017-07-141-1/+5
| | | | | | | | FunctionDecl already hashes most of the information in the function's type. Add hashing of the return type, and skip hashing the function's type to avoid redundancy and extra work when computing the hash. llvm-svn: 307986
* [ODRHash] Revert r307720 to fix buildbot.Richard Trieu2017-07-121-2/+0
| | | | llvm-svn: 307743
* [ODRHash] Support more method types.Richard Trieu2017-07-111-0/+2
| | | | | | | Hash CXXConstructorDecl and CXXDestructorDecl. Extend the diagnostics from CXXMethodDecl to include constructors and destructors. llvm-svn: 307720
* [ODRHash] Support FriendDeclRichard Trieu2017-07-081-0/+18
| | | | llvm-svn: 307458
* [ODRHash] Revert r305104 - Skip inline namespaces when hashing.Richard Trieu2017-07-011-18/+9
| | | | | | Test inline namespaces and handle them in the ODR hash again. llvm-svn: 306926
* [ODRHash] Support Type TemplateArgumentRichard Trieu2017-06-301-0/+3
| | | | llvm-svn: 306904
* [ODRHash] Improve typedef handling.Richard Trieu2017-06-291-1/+14
| | | | | | | Follow typedef chains to find the root type when processing types, and also keep track of qualifiers. llvm-svn: 306753
* [ODRHash] Hash VarDecl members.Richard Trieu2017-06-161-0/+12
| | | | | | | These VarDecl's are static data members of classes. Since the initializers are also hashed, this also provides checking for default arguments to methods. llvm-svn: 305543
* [ODRHash] Hash TemplateArgument::Pack and TemplateTypeParmTypeRichard Trieu2017-06-151-0/+11
| | | | llvm-svn: 305440
* [ODRHash] Remove debugging code from r305361Richard Trieu2017-06-141-1/+0
| | | | llvm-svn: 305362
* [ODRHash] Hash Template and TemplateExpansion in TemplateArgument.Richard Trieu2017-06-141-0/+3
| | | | llvm-svn: 305361
* [ODRHash] Hash Expr for TemplateArgument::ExpressionRichard Trieu2017-06-141-0/+16
| | | | llvm-svn: 305360
* [ODRHash] Add TemplateArgument kind to hash.Richard Trieu2017-06-131-1/+5
| | | | llvm-svn: 305328
* Revert r305110 to fix buildbotRichard Trieu2017-06-091-19/+1
| | | | llvm-svn: 305130
* [ODRHash] Add support for TemplateArgument types.Richard Trieu2017-06-091-1/+19
| | | | | | | Recommit r304592 that was reverted in r304618. r305104 should have fixed the issue. llvm-svn: 305110
* [ODRHash] Skip inline namespaces when hashing.Richard Trieu2017-06-091-9/+18
| | | | | | | Speculatively try to fix the underlying issue from r304592, of underlying types being confused when inline namespaces are used. llvm-svn: 305104
* Revert r304592Richard Trieu2017-06-031-19/+1
| | | | | | | r304592 - [ODRHash] Add support for TemplateArgument types. Possibly causing one of the errors in modules build bot. llvm-svn: 304618
* [ODRHash] Add support for TemplateArgument types.Richard Trieu2017-06-021-1/+19
| | | | llvm-svn: 304592
* [ODRHash] Support TemplateSpecializationTypeRichard Trieu2017-05-311-1/+27
| | | | llvm-svn: 304261
* [ODRHash] Revert r303450 to fix buildbotRichard Trieu2017-05-191-90/+2
| | | | | | | r303450 [ODRHash] Support TemplateName and TemplateArgument llvm-svn: 303459
* [ODRHash] Support TemplateName and TemplateArgumentRichard Trieu2017-05-191-2/+90
| | | | llvm-svn: 303450
* [ODRHash] Support NestedNameSpecifierRichard Trieu2017-05-171-1/+29
| | | | llvm-svn: 303233
* [ODRHash] Support more types in the ODR checker.Richard Trieu2017-05-171-0/+50
| | | | | | Added support for TagType, TypeWithKeyword, and all children types. llvm-svn: 303231
* [ODRHash] Loosen checks on typedefs.Richard Trieu2017-05-091-1/+1
| | | | | | | When a type in a class is from a typedef, only check the canonical type. Skip checking the intermediate underlying types. This is in response to PR 32965 llvm-svn: 302505
* [ODRHash] Add support for array and decayed types, and parameter names and ↵Richard Trieu2017-05-021-0/+82
| | | | | | types. llvm-svn: 301989
* Revert r300001 "Revert r298824 & r298816, recommit r298742 & r298754"Hans Wennborg2017-04-121-100/+0
| | | | | | It caused PR32640. llvm-svn: 300074
* Revert r298824 & r298816, recommit r298742 & r298754Richard Trieu2017-04-111-0/+100
| | | | | | | | | | | | | r299989 fixes the underlying issue by waiting long enough to late parsed arguments to be processed before doing an calculating the hash. r298742 [ODRHash] Add error messages for mismatched parameters in methods. r298754 [ODRHash] Add support for array and decayed types. llvm-svn: 300001
* Revert r298742 "[ODRHash] Add error messages for mismatched parameters in ↵Vassil Vassilev2017-03-261-59/+0
| | | | | | | | methods." I failed to revert this in r298816. llvm-svn: 298824
* Revert 298754 and 298742.Vassil Vassilev2017-03-261-41/+0
| | | | | | They broke llvm modules builds and our internal modules infrastructure. llvm-svn: 298816
* [ODRHash] Add support for array and decayed types.Richard Trieu2017-03-251-0/+41
| | | | llvm-svn: 298754
* [ODRHash] Add error messages for mismatched parameters in methods.Richard Trieu2017-03-241-0/+59
| | | | llvm-svn: 298742
* [ODRHash] Hash typedefs and usings statements in classes.Richard Trieu2017-03-081-0/+17
| | | | llvm-svn: 297246
* [ODRHash] Add support for detecting different method properties.Richard Trieu2017-03-041-1/+10
| | | | | | | | Now print diagnostics for static, virtual, inline, volatile, and const differences in methods. Also use DeclarationName instead of IdentifierInfo for additional robustness in diagnostic printing. llvm-svn: 296932
* [ODRHash] Add basic support for CXXRecordDeclRichard Trieu2017-02-281-0/+9
| | | | llvm-svn: 296521
* [ODRHash] Move inherited visitor call to end of function.Richard Trieu2017-02-251-2/+2
| | | | llvm-svn: 296221
* [ODRHash] Finish FieldDecl support by handling mutable and initializers.Richard Trieu2017-02-241-0/+3
| | | | | | https://reviews.llvm.org/rL296170 llvm-svn: 296198
* [ODRHash] Add handling of bitfieldsRichard Trieu2017-02-241-0/+7
| | | | | | Differential Revision: https://reviews.llvm.org/D21675 llvm-svn: 296170
* [ODRHash] Add handling of TypedefType and DeclarationNameRichard Trieu2017-02-241-1/+65
| | | | | | Differential Revision: https://reviews.llvm.org/D21675 llvm-svn: 296078
* [ODRHash] Handle types in ODR hashing.Richard Trieu2017-02-231-2/+62
| | | | | | | | | | Fields will now have their types added to the hash, allowing for detection of mismatched field types. This detection allows the existing ODR checking to produce the correct message. Differential Revision: https://reviews.llvm.org/D21675 llvm-svn: 295931
OpenPOWER on IntegriCloud