| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Add a check to bitfield mismatches that may have caused Clang to
give an error about the bitfield instead of being mutable.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In some cases, a typedef only strips aways a keyword for a type, keeping the
same name as the root record type. This causes some confusion when the type
is defined in one modules but only forward declared in another. Skipping the
typedef and going straight to the record will avoid this issue.
typedef struct S {} S;
S* s; // S is TypedefType here
struct S;
S* s; // S is RecordType here
llvm-svn: 364119
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a FunctionProtoType is in the original type in a DecayedType, the decayed
type is a PointerType which points back the original FunctionProtoType. The
visitor for ODRHashing will attempt to process both Type's, doing double work.
By chaining together multiple DecayedType's and FunctionProtoType's, this would
result in 2^N Type's visited only N DecayedType's and N FunctionProtoType's
exsit. Another bug where VisitDecayedType and VisitAdjustedType did
redundant work doubled the work at each level, giving 4^N Type's visited. This
patch removed the double work and detects when a FunctionProtoType decays to
itself to only check the Type once. This lowers the exponential runtime to
linear runtime. Fixes https://bugs.llvm.org/show_bug.cgi?id=41625
llvm-svn: 359960
|
|
|
|
|
|
|
| |
This test uses enums, which have different behavior when targeting different
systems. Specifying a triple will give predictable behavior to this test.
llvm-svn: 341496
|
|
|
|
| |
llvm-svn: 341421
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D45712
llvm-svn: 338931
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
Treat having no templates arguments differently than having zero template
arguments when profiling.
llvm-svn: 325040
|
|
|
|
|
|
|
| |
Extend the hashing to functions, which allows detection of function definition
mismatches across modules. This is a re-commit of r320230.
llvm-svn: 321395
|
|
|
|
| |
llvm-svn: 320239
|
|
|
|
|
|
|
| |
Extend the hashing to functions, which allows detection of function definition
mismatches across modules.
llvm-svn: 320230
|
|
|
|
|
|
|
|
| |
Add a mix of postive and negative tests to check that wrong Decls won't be
flagged in the diagnostic. Split the check everything test and moved the
pieces closer to where the related tests are.
llvm-svn: 317394
|
|
|
|
| |
llvm-svn: 314581
|
|
|
|
| |
llvm-svn: 311519
|
|
|
|
|
|
|
| |
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: 305361
|
|
|
|
| |
llvm-svn: 305360
|
|
|
|
| |
llvm-svn: 305328
|
|
|
|
| |
llvm-svn: 305238
|
|
|
|
| |
llvm-svn: 305130
|
|
|
|
|
|
|
| |
Recommit r304592 that was reverted in r304618. r305104 should have fixed the
issue.
llvm-svn: 305110
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 301701
|
|
|
|
|
|
|
|
|
| |
Use a macro to generate the struct with all decls. Previously, four identical
changes would be needed to update this test. This macro reduces that to one
location. Added two other tests for issues that triggered false positives
during testing.
llvm-svn: 300814
|
|
|
|
|
|
| |
It caused PR32640.
llvm-svn: 300074
|