| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 337978
|
|
|
|
|
|
|
|
|
|
|
| |
Functions that are a sub-Decl of a record were hashed differently than other
functions. This change keeps the AddFunctionDecl function and the hash of
records now calls this function. In addition, AddFunctionDecl has an option
to perform a hash as if the body was absent, which is required for some
checks after loading modules. Additional logic prevents multiple error
message from being printed.
llvm-svn: 336632
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ODRHash aims to provide Cross-TU stable hashing. Making clang::Type pointer
part of the hash connects (remotely) the ODRHash with the TU-specific
::Profile hasher.
r332281 exposed the issue by changing the way the ASTContext different
elaborated types if there is an owning tag. In that case, ODRHash stores two
different types in its TypeMap which yields false ODR violation in modules.
The current state of implementation shouldn't need the TypeMap concept
anymore. Rip it out.
Differential Revision: https://reviews.llvm.org/D48524
llvm-svn: 335853
|
|
|
|
|
|
|
| |
Avoid storing information for definitions since those can be out-of-line and
vary between modules even when the declarations are the same.
llvm-svn: 334151
|
|
|
|
| |
llvm-svn: 333486
|
|
|
|
| |
llvm-svn: 330789
|
|
|
|
|
|
|
| |
Recommit r328404 which was reverted in rL328404. r329869 fixed the issue that
caused the revert.
llvm-svn: 330074
|
|
|
|
|
|
| |
To get the underlying type for TypedefType's, also skip ElaboratedType's.
llvm-svn: 329869
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
commit 519b97132a4c960e8dedbfe4290d86970d92e995
Author: Richard Trieu <rtrieu@google.com>
Date: Sat Mar 24 00:52:44 2018 +0000
[ODRHash] Support pointer and reference types.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@328404 91177308-0d34-0410-b5e6-96231b3b80d8
As it's breaking some tests. I've communicated with Richard offline about testcases.
llvm-svn: 329001
|
|
|
|
| |
llvm-svn: 328404
|
|
|
|
|
|
|
| |
When hashing a templated function, use the hash of the function it was
instantiated from.
llvm-svn: 325742
|
|
|
|
|
|
|
|
| |
Build the index off of DeclarationName instead of Decl pointers. When finding
an UnresolvedLookupExprClass, hash it as if it were a DeclRefExpr. This will
allow methods to be hashed.
llvm-svn: 325741
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
Extend the hashing to functions, which allows detection of function definition
mismatches across modules. This is a re-commit of r320230.
llvm-svn: 321395
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 320239
|
|
|
|
|
|
|
| |
Extend the hashing to functions, which allows detection of function definition
mismatches across modules.
llvm-svn: 320230
|
|
|
|
| |
llvm-svn: 314581
|
|
|
|
| |
llvm-svn: 311519
|
|
|
|
| |
llvm-svn: 311286
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
Reapply r307720 to allow processing of constructors and destructors. Reuse
the diagnostics for CXXMethodDecl for them.
llvm-svn: 308077
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 307743
|
|
|
|
|
|
|
| |
Hash CXXConstructorDecl and CXXDestructorDecl. Extend the diagnostics from
CXXMethodDecl to include constructors and destructors.
llvm-svn: 307720
|
|
|
|
| |
llvm-svn: 307458
|
|
|
|
|
|
| |
Test inline namespaces and handle them in the ODR hash again.
llvm-svn: 306926
|
|
|
|
| |
llvm-svn: 306904
|
|
|
|
|
|
|
| |
Follow typedef chains to find the root type when processing types, and also
keep track of qualifiers.
llvm-svn: 306753
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 305440
|
|
|
|
| |
llvm-svn: 305362
|
|
|
|
| |
llvm-svn: 305361
|
|
|
|
| |
llvm-svn: 305360
|
|
|
|
| |
llvm-svn: 305328
|
|
|
|
| |
llvm-svn: 305130
|
|
|
|
|
|
|
| |
Recommit r304592 that was reverted in r304618. r305104 should have fixed the
issue.
llvm-svn: 305110
|
|
|
|
|
|
|
| |
Speculatively try to fix the underlying issue from r304592, of underlying types
being confused when inline namespaces are used.
llvm-svn: 305104
|
|
|
|
|
|
|
| |
r304592 - [ODRHash] Add support for TemplateArgument types.
Possibly causing one of the errors in modules build bot.
llvm-svn: 304618
|
|
|
|
| |
llvm-svn: 304592
|
|
|
|
| |
llvm-svn: 304261
|
|
|
|
|
|
|
| |
r303450
[ODRHash] Support TemplateName and TemplateArgument
llvm-svn: 303459
|
|
|
|
| |
llvm-svn: 303450
|
|
|
|
| |
llvm-svn: 303233
|
|
|
|
|
|
| |
Added support for TagType, TypeWithKeyword, and all children types.
llvm-svn: 303231
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
types.
llvm-svn: 301989
|
|
|
|
|
|
| |
It caused PR32640.
llvm-svn: 300074
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|