Richard Trieu
7282d320b7
[ODRHash] Hash template arguments of methods.
...
llvm-svn: 330789
2018-04-25 00:31:15 +00:00
Richard Trieu
15970af92a
[ODRHash] Support pointer and reference types.
...
Recommit r328404 which was reverted in rL328404. r329869 fixed the issue that
caused the revert.
llvm-svn: 330074
2018-04-13 22:34:43 +00:00
Richard Trieu
caaccee77d
[ODRHash] Skip more types hashing TypedefType
...
To get the underlying type for TypedefType's, also skip ElaboratedType's.
llvm-svn: 329869
2018-04-12 02:26:49 +00:00
Eric Christopher
a26755cd55
Temporarily revert r328404:
...
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
2018-04-02 18:33:47 +00:00
Richard Trieu
8ce0ab3923
[ODRHash] Support pointer and reference types.
...
llvm-svn: 328404
2018-03-24 00:52:44 +00:00
Richard Trieu
4d06bef38d
Update StmtProfile.cpp to handle zero template arguments.
...
Treat having no templates arguments differently than having zero template
arguments when profiling.
llvm-svn: 325040
2018-02-13 19:53:40 +00:00
Richard Trieu
e6caa26e5d
[ODRHash] Support ODR violation detection in functions.
...
Extend the hashing to functions, which allows detection of function definition
mismatches across modules. This is a re-commit of r320230.
llvm-svn: 321395
2017-12-23 00:41:01 +00:00
Richard Trieu
c4ec87af1d
Revert r320230 to fix buildbots.
...
llvm-svn: 320239
2017-12-09 03:02:21 +00:00
Richard Trieu
e81caeb314
[ODRHash] Support ODR violation detection in functions.
...
Extend the hashing to functions, which allows detection of function definition
mismatches across modules.
llvm-svn: 320230
2017-12-09 01:29:40 +00:00
Richard Trieu
73cf924104
Update ODR hashing tests
...
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
2017-11-04 01:20:50 +00:00
Richard Trieu
e13eabe7d3
[ODRHash] Add base classes to hashing CXXRecordDecl.
...
llvm-svn: 314581
2017-09-30 02:19:17 +00:00
Richard Trieu
498117bf11
[ODRHash] Diagnose differing template parameters.
...
llvm-svn: 311519
2017-08-23 02:43:59 +00:00
Richard Trieu
1c71d5143a
[ODRHash] Revert r307743 which reverted r307720
...
Reapply r307720 to allow processing of constructors and destructors. Reuse
the diagnostics for CXXMethodDecl for them.
llvm-svn: 308077
2017-07-15 02:55:13 +00:00
Richard Trieu
9747a7c562
[ODRHash] Avoid taking the types of FunctionDecl's
...
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
2017-07-14 01:36:41 +00:00
Richard Trieu
68fbf8563f
[ODRHash] Revert r307720 to fix buildbot.
...
llvm-svn: 307743
2017-07-12 00:38:27 +00:00
Richard Trieu
1d06f44f0f
[ODRHash] Support more method types.
...
Hash CXXConstructorDecl and CXXDestructorDecl. Extend the diagnostics from
CXXMethodDecl to include constructors and destructors.
llvm-svn: 307720
2017-07-11 22:10:49 +00:00
Richard Trieu
ac6a1b6417
[ODRHash] Support FriendDecl
...
llvm-svn: 307458
2017-07-08 02:04:42 +00:00
Richard Trieu
96b4164968
[ODRHash] Revert r305104 - Skip inline namespaces when hashing.
...
Test inline namespaces and handle them in the ODR hash again.
llvm-svn: 306926
2017-07-01 02:00:05 +00:00
Richard Trieu
8844c52266
[ODRHash] Support Type TemplateArgument
...
llvm-svn: 306904
2017-06-30 22:40:33 +00:00
Richard Trieu
3e03d3ee54
[ODRHash] Improve typedef handling.
...
Follow typedef chains to find the root type when processing types, and also
keep track of qualifiers.
llvm-svn: 306753
2017-06-29 22:53:04 +00:00
Richard Trieu
6e13ff33c8
[ODRHash] Hash VarDecl members.
...
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
2017-06-16 02:44:29 +00:00
Richard Trieu
d9201d0a02
[ODRHash] Hash TemplateArgument::Pack and TemplateTypeParmType
...
llvm-svn: 305440
2017-06-15 01:35:06 +00:00
Richard Trieu
ee132d6eb2
[ODRHash] Hash Template and TemplateExpansion in TemplateArgument.
...
llvm-svn: 305361
2017-06-14 03:17:26 +00:00
Richard Trieu
1dcb405ca1
[ODRHash] Hash Expr for TemplateArgument::Expression
...
llvm-svn: 305360
2017-06-14 01:28:00 +00:00
Richard Trieu
3b261bb725
[ODRHash] Add TemplateArgument kind to hash.
...
llvm-svn: 305328
2017-06-13 22:21:18 +00:00
Richard Trieu
11d566acee
[ODRHash] Add diagnostic messages for typedef and type alias.
...
llvm-svn: 305238
2017-06-12 21:58:22 +00:00
Richard Trieu
be5cb93088
Revert r305110 to fix buildbot
...
llvm-svn: 305130
2017-06-09 23:03:40 +00:00
Richard Trieu
4ab80f2e9e
[ODRHash] Add support for TemplateArgument types.
...
Recommit r304592 that was reverted in r304618. r305104 should have fixed the
issue.
llvm-svn: 305110
2017-06-09 21:00:10 +00:00
Richard Trieu
d064d1b6e8
Revert r304592
...
r304592 - [ODRHash] Add support for TemplateArgument types.
Possibly causing one of the errors in modules build bot.
llvm-svn: 304618
2017-06-03 00:11:23 +00:00
Richard Trieu
24c302b915
[ODRHash] Add support for TemplateArgument types.
...
llvm-svn: 304592
2017-06-02 20:35:29 +00:00
Richard Trieu
96b4962c8d
[ODRHash] Support TemplateSpecializationType
...
llvm-svn: 304261
2017-05-31 00:31:58 +00:00
Richard Trieu
cc6893736b
[ODRHash] Revert r303450 to fix buildbot
...
r303450
[ODRHash] Support TemplateName and TemplateArgument
llvm-svn: 303459
2017-05-19 22:35:41 +00:00
Richard Trieu
d05a006a53
[ODRHash] Support TemplateName and TemplateArgument
...
llvm-svn: 303450
2017-05-19 20:05:16 +00:00
Richard Trieu
ce81b194a0
[ODRHash] Support NestedNameSpecifier
...
llvm-svn: 303233
2017-05-17 03:23:35 +00:00
Richard Trieu
58bb7bd18a
[ODRHash] Support more types in the ODR checker.
...
Added support for TagType, TypeWithKeyword, and all children types.
llvm-svn: 303231
2017-05-17 02:29:02 +00:00
Richard Trieu
b35ef2a599
[ODRHash] Loosen checks on typedefs.
...
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
2017-05-09 03:24:34 +00:00
Richard Trieu
0255227a58
[ODRHash] Add support for array and decayed types, and parameter names and types.
...
llvm-svn: 301989
2017-05-02 23:58:52 +00:00
Richard Trieu
157ed94ee7
[ODRHash] Add testcase with different paramter names. NFC
...
llvm-svn: 301701
2017-04-28 22:03:28 +00:00
Richard Trieu
fe56405467
[ODRHash] clean up test and add new examples. NFC
...
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
2017-04-20 02:53:53 +00:00
Hans Wennborg
227077613a
Revert r300001 "Revert r298824 & r298816, recommit r298742 & r298754"
...
It caused PR32640.
llvm-svn: 300074
2017-04-12 16:40:26 +00:00
Richard Trieu
304ef22e6e
Revert r298824 & r298816, recommit r298742 & r298754
...
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
2017-04-11 22:32:03 +00:00
Vassil Vassilev
3b7a6f9be6
Revert r298742 "[ODRHash] Add error messages for mismatched parameters in methods."
...
I failed to revert this in r298816.
llvm-svn: 298824
2017-03-26 21:39:16 +00:00
Vassil Vassilev
bae9202b9a
Revert 298754 and 298742.
...
They broke llvm modules builds and our internal modules infrastructure.
llvm-svn: 298816
2017-03-26 18:32:53 +00:00
Richard Trieu
7583bec0c3
[ODRHash] Add support for array and decayed types.
...
llvm-svn: 298754
2017-03-25 00:48:52 +00:00
Richard Trieu
73bac6a2f0
[ODRHash] Add error messages for mismatched parameters in methods.
...
llvm-svn: 298742
2017-03-24 21:17:48 +00:00
Alex Lorenz
76377dcf99
Print nested name specifiers for typedefs and type aliases
...
Printing typedefs or type aliases using clang_getTypeSpelling() is missing the
namespace they are defined in. This is in contrast to other types that always
yield the full typename including namespaces.
Patch by Michael Reiher!
Differential Revision: https://reviews.llvm.org/D29944
llvm-svn: 297465
2017-03-10 15:04:58 +00:00
Richard Trieu
33562c2dcc
[ODRHash] Hash typedefs and usings statements in classes.
...
llvm-svn: 297246
2017-03-08 00:13:19 +00:00
Richard Trieu
f4b54fe64b
[ODRHash] Try again to fix build bot.
...
llvm-svn: 296958
2017-03-04 03:04:15 +00:00
Richard Trieu
054c35c0c1
[ODRHash] Change test to try to appease buildbot.
...
llvm-svn: 296953
2017-03-04 02:05:13 +00:00
Richard Trieu
583e2c175a
[ODRHash] Add support for detecting different method properties.
...
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
2017-03-04 00:08:58 +00:00