|
Revision tags: llvmorg-20.1.0, llvmorg-20.1.0-rc3, llvmorg-20.1.0-rc2, llvmorg-20.1.0-rc1, llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7, llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init, llvmorg-14.0.6, llvmorg-14.0.5, llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1, llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2, llvmorg-14.0.0-rc1, llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2, llvmorg-13.0.1-rc1 |
|
| #
6a5e08cc |
| 28-Oct-2021 |
Sam McCall <[email protected]> |
[AST] injected-class-name is not a redecl, even in template specializations
Back in the mists of time, the CXXRecordDecl for the injected-class-name was a redecl of the outer class itself. This got
[AST] injected-class-name is not a redecl, even in template specializations
Back in the mists of time, the CXXRecordDecl for the injected-class-name was a redecl of the outer class itself. This got changed in 470c454a6176ef31474553e408c90f5ee630df89, but only for plain classes: class template instantation was still detecting the injected-class-name in the template body and marking its instantiation as a redecl.
This causes some subtle inconsistent behavior between the two, e.g. hasDefinition() returns true for Foo<int>::Foo but false for Bar::Bar. This is the root cause of PR51912.
Differential Revision: https://reviews.llvm.org/D112765
show more ...
|
|
Revision tags: llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3, llvmorg-13.0.0-rc2, llvmorg-13.0.0-rc1, llvmorg-14-init, llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3, llvmorg-12.0.1-rc2, llvmorg-12.0.1-rc1, llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4, llvmorg-12.0.0-rc3, llvmorg-12.0.0-rc2, llvmorg-11.1.0, llvmorg-11.1.0-rc3, llvmorg-12.0.0-rc1, llvmorg-13-init, llvmorg-11.1.0-rc2, llvmorg-11.1.0-rc1, llvmorg-11.0.1, llvmorg-11.0.1-rc2, llvmorg-11.0.1-rc1 |
|
| #
a6d15d40 |
| 03-Nov-2020 |
Matt Morehouse <[email protected]> |
Undo Revert "Ignore template instantiations if not in AsIs mode"
MaskRay already fixed the ASan bug.
|
| #
72531ae6 |
| 03-Nov-2020 |
Matt Morehouse <[email protected]> |
Revert "Ignore template instantiations if not in AsIs mode"
This reverts commit 53df3beb624989ed32d87697d0c17601d7871465 due to check-asan failure on the buildbot.
|
|
Revision tags: llvmorg-11.0.0, llvmorg-11.0.0-rc6, llvmorg-11.0.0-rc5, llvmorg-11.0.0-rc4, llvmorg-11.0.0-rc3, llvmorg-11.0.0-rc2, llvmorg-11.0.0-rc1, llvmorg-12-init, llvmorg-10.0.1, llvmorg-10.0.1-rc4, llvmorg-10.0.1-rc3, llvmorg-10.0.1-rc2 |
|
| #
53df3beb |
| 01-Jun-2020 |
Stephen Kelly <[email protected]> |
Ignore template instantiations if not in AsIs mode
Summary: IgnoreUnlessSpelledInSource mode should ignore these because they are not written in the source. This matters for example when trying to
Ignore template instantiations if not in AsIs mode
Summary: IgnoreUnlessSpelledInSource mode should ignore these because they are not written in the source. This matters for example when trying to replace types or values which are templated. The new test in TransformerTest.cpp in this commit demonstrates the problem.
In existing matcher code, users can write `unless(isInTemplateInstantiation())` or `unless(isInstantiated())` (the user must know which to use). The point of the TK_IgnoreUnlessSpelledInSource mode is to allow the novice to avoid such details. This patch changes the IgnoreUnlessSpelledInSource mode to skip over implicit template instantiations.
This patch does not change the TK_AsIs mode.
Note: An obvious attempt at an alternative implementation would simply change the shouldVisitTemplateInstantiations() in ASTMatchFinder.cpp to return something conditional on the operational TraversalKind. That does not work because shouldVisitTemplateInstantiations() is called before a possible top-level traverse() matcher changes the operational TraversalKind.
Reviewers: sammccall, aaron.ballman, gribozavr2, ymandel, klimek
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D80961
show more ...
|
| #
f63e3ea5 |
| 06-Jul-2020 |
Bruno Ricci <[email protected]> |
[clang] Rework how and when APValues are dumped
Currently APValues are dumped as a single string. This becomes quickly completely unreadable since APValue is a tree-like structure. Even a simple exa
[clang] Rework how and when APValues are dumped
Currently APValues are dumped as a single string. This becomes quickly completely unreadable since APValue is a tree-like structure. Even a simple example is not pretty:
struct S { int arr[4]; float f; }; constexpr S s = { .arr = {1,2}, .f = 3.1415f }; // Struct fields: Array: Int: 1, Int: 2, 2 x Int: 0, Float: 3.141500e+00
With this patch this becomes:
-Struct |-field: Array size=4 | |-elements: Int 1, Int 2 | `-filler: 2 x Int 0 `-field: Float 3.141500e+00
Additionally APValues are currently only dumped as part of visiting a ConstantExpr. This patch also dump the value of the initializer of constexpr variable declarations:
constexpr int foo(int a, int b) { return a + b - 42; } constexpr int a = 1, b = 2; constexpr int c = foo(a, b) > 0 ? foo(a, b) : foo(b, a); // VarDecl 0x62100008aec8 <col:3, col:57> col:17 c 'const int' constexpr cinit // |-value: Int -39 // `-ConditionalOperator 0x62100008b4d0 <col:21, col:57> 'int' // <snip>
Do the above by moving the dump functions to TextNodeDumper which already has the machinery to display trees. The cases APValue::LValue, APValue::MemberPointer and APValue::AddrLabelDiff are left as they were before (unimplemented).
We try to display multiple elements on the same line if they are considered to be "simple". This is to avoid wasting large amounts of vertical space in an example like:
constexpr int arr[8] = {0,1,2,3,4,5,6,7}; // VarDecl 0x62100008bb78 <col:3, col:42> col:17 arr 'int const[8]' constexpr cinit // |-value: Array size=8 // | |-elements: Int 0, Int 1, Int 2, Int 3 // | `-elements: Int 4, Int 5, Int 6, Int 7
Differential Revision: https://reviews.llvm.org/D83183
Reviewed By: aaron.ballman
show more ...
|
| #
473fbc90 |
| 03-Jul-2020 |
Bruno Ricci <[email protected]> |
[clang][NFC] Store a pointer to the ASTContext in ASTDumper and TextNodeDumper
In general there is no way to get to the ASTContext from most AST nodes (Decls are one of the exception). This will be
[clang][NFC] Store a pointer to the ASTContext in ASTDumper and TextNodeDumper
In general there is no way to get to the ASTContext from most AST nodes (Decls are one of the exception). This will be a problem when implementing the rest of APValue::dump since we need the ASTContext to dump some kinds of APValues.
The ASTContext* in ASTDumper and TextNodeDumper is not always non-null. This is because we still want to be able to use the various dump() functions in a debugger.
No functional changes intended.
Reverted in fcf4d5e4499a391dff42ea1a096f146db44147b6 since a few dump() functions in lldb where missed.
show more ...
|
| #
fcf4d5e4 |
| 02-Jul-2020 |
Bruno Ricci <[email protected]> |
Revert "[clang][NFC] Store a pointer to the ASTContext in ASTDumper and TextNodeDumper"
This reverts commit aa7fd905e4e1bc510448431da9310e8cf5197523.
I missed some dump() functions.
|
| #
aa7fd905 |
| 02-Jul-2020 |
Bruno Ricci <[email protected]> |
[clang][NFC] Store a pointer to the ASTContext in ASTDumper and TextNodeDumper
In general there is no way to get to the ASTContext from most AST nodes (Decls are one of the exception). This will be
[clang][NFC] Store a pointer to the ASTContext in ASTDumper and TextNodeDumper
In general there is no way to get to the ASTContext from most AST nodes (Decls are one of the exception). This will be a problem when implementing the rest of APValue::dump since we need the ASTContext to dump some kinds of APValues.
The ASTContext* in ASTDumper and TextNodeDumper is not always non-null. This is because we still want to be able to use the various dump() functions in a debugger.
No functional changes intended.
show more ...
|
| #
2e92b397 |
| 08-Jun-2020 |
Martin Boehme <[email protected]> |
[clang] Rename Decl::isHidden() to isUnconditionallyVisible().
Also invert the sense of the return value.
As pointed out by the FIXME that this change resolves, isHidden() wasn't a very accurate na
[clang] Rename Decl::isHidden() to isUnconditionallyVisible().
Also invert the sense of the return value.
As pointed out by the FIXME that this change resolves, isHidden() wasn't a very accurate name for this function.
I haven't yet changed any of the strings that are output in ASTDumper.cpp / JSONNodeDumper.cpp / TextNodeDumper.cpp in response to whether isHidden() is set because
a) I'm not sure whether it's actually desired to change these strings (would appreciate feedback on this), and
b) In any case, I'd like to get this pure rename out of the way first, without any changes to tests. Changing the strings that are output in the various ...Dumper.cpp files will require changes to quite a few tests, and I'd like to make those in a separate change.
Differential Revision: https://reviews.llvm.org/D81392
Reviewed By: rsmith
show more ...
|
|
Revision tags: llvmorg-10.0.1-rc1, llvmorg-10.0.0, llvmorg-10.0.0-rc6, llvmorg-10.0.0-rc5, llvmorg-10.0.0-rc4, llvmorg-10.0.0-rc3, llvmorg-10.0.0-rc2, llvmorg-10.0.0-rc1, llvmorg-11-init, llvmorg-9.0.1, llvmorg-9.0.1-rc3, llvmorg-9.0.1-rc2, llvmorg-9.0.1-rc1, llvmorg-9.0.0, llvmorg-9.0.0-rc6, llvmorg-9.0.0-rc5, llvmorg-9.0.0-rc4, llvmorg-9.0.0-rc3, llvmorg-9.0.0-rc2, llvmorg-9.0.0-rc1, llvmorg-10-init, llvmorg-8.0.1, llvmorg-8.0.1-rc4, llvmorg-8.0.1-rc3, llvmorg-8.0.1-rc2 |
|
| #
e091ab1b |
| 27-May-2019 |
Aaron Ballman <[email protected]> |
When dumping the AST to JSON, dump the type information from a typeid expression with a type operand.
llvm-svn: 361769
|
| #
86abee81 |
| 21-May-2019 |
Aaron Ballman <[email protected]> |
Add support for dumping AST comment nodes to JSON.
llvm-svn: 361265
|
| #
c8dcbed6 |
| 17-May-2019 |
Stephen Kelly <[email protected]> |
Extract ASTDumper to a header file
Summary: This class has member APIs which are useful to clients. Make it possible to use those APIs without adding them to dump() member functions. Doing so does
Extract ASTDumper to a header file
Summary: This class has member APIs which are useful to clients. Make it possible to use those APIs without adding them to dump() member functions. Doing so does not scale. The optional arguments to dump() should be designed to be useful in a debugging context.
Reviewers: aaron.ballman
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D61835
llvm-svn: 361034
show more ...
|
|
Revision tags: llvmorg-8.0.1-rc1 |
|
| #
2ce598a4 |
| 13-May-2019 |
Aaron Ballman <[email protected]> |
Introduce the ability to dump the AST to JSON.
This adds the -ast-dump=json cc1 flag (in addition to -ast-dump=default, which is the default if no dump format is specified), as well as some initial
Introduce the ability to dump the AST to JSON.
This adds the -ast-dump=json cc1 flag (in addition to -ast-dump=default, which is the default if no dump format is specified), as well as some initial AST dumping functionality and tests.
llvm-svn: 360622
show more ...
|
|
Revision tags: llvmorg-8.0.0, llvmorg-8.0.0-rc5, llvmorg-8.0.0-rc4, llvmorg-8.0.0-rc3, llvmorg-7.1.0, llvmorg-7.1.0-rc1, llvmorg-8.0.0-rc2 |
|
| #
c4933015 |
| 03-Feb-2019 |
Stephen Kelly <[email protected]> |
[AST] Extract ASTNodeTraverser class from ASTDumper
Summary: This new traverser class allows clients to re-use the traversal logic which was previously part of ASTDumper. This means that alternativ
[AST] Extract ASTNodeTraverser class from ASTDumper
Summary: This new traverser class allows clients to re-use the traversal logic which was previously part of ASTDumper. This means that alternative visit logic may be implemented, such as
* Dump to alternative data formats such as JSON * Implement AST Matcher parent/child visitation matching AST dumps
Reviewers: aaron.ballman
Subscribers: jfb, cfe-commits
Differential Revision: https://reviews.llvm.org/D57472
llvm-svn: 352989
show more ...
|
| #
251e1488 |
| 01-Feb-2019 |
Michael Kruse <[email protected]> |
[OpenMP 5.0] Parsing/sema support for "omp declare mapper" directive.
This patch implements parsing and sema for "omp declare mapper" directive. User defined mapper, i.e., declare mapper directive,
[OpenMP 5.0] Parsing/sema support for "omp declare mapper" directive.
This patch implements parsing and sema for "omp declare mapper" directive. User defined mapper, i.e., declare mapper directive, is a new feature in OpenMP 5.0. It is introduced to extend existing map clauses for the purpose of simplifying the copy of complex data structures between host and device (i.e., deep copy). An example is shown below:
struct S { int len; int *d; }; #pragma omp declare mapper(struct S s) map(s, s.d[0:s.len]) // Memory region that d points to is also mapped using this mapper.
Contributed-by: Lingda Li <[email protected]>
Differential Revision: https://reviews.llvm.org/D56326
llvm-svn: 352906
show more ...
|
| #
ee7e4cf4 |
| 30-Jan-2019 |
Stephen Kelly <[email protected]> |
[ASTDump] Inline traverse methods into class
This API will be extracted into a new template class. This change will make the follow-up commit easier to review.
llvm-svn: 352676
|
| #
7e880b02 |
| 30-Jan-2019 |
Stephen Kelly <[email protected]> |
[ASTDump] Make method definition order matches declaration order
This will make follow-up changes easier to review.
llvm-svn: 352663
|
| #
0808a251 |
| 30-Jan-2019 |
Stephen Kelly <[email protected]> |
[ASTDump] Re-arrange method declarations to group Visit together
This will make follow-up commits easier to review.
llvm-svn: 352661
|
| #
6d110d6a |
| 30-Jan-2019 |
Stephen Kelly <[email protected]> |
[ASTDump] Rename methods which are conceptually Visits
This is consistent with the TextNodeDumper, and is the appropriate name for the traverser class which will be extracted.
llvm-svn: 352657
|
| #
d8aeb55e |
| 30-Jan-2019 |
Stephen Kelly <[email protected]> |
[ASTDump] NFC: Inline vestigial methods
This was a porting aid.
llvm-svn: 352656
|
| #
b6318c92 |
| 30-Jan-2019 |
Stephen Kelly <[email protected]> |
[ASTDump] Move Decl node dumping to TextNodeDumper
Reviewers: aaron.ballman
Subscribers: jfb, cfe-commits
Differential Revision: https://reviews.llvm.org/D57419
llvm-svn: 352655
|
| #
4f9e3ce0 |
| 30-Jan-2019 |
Roman Lebedev <[email protected]> |
[ASTDumper][OpenMP] CapturedDecl has a 'nothrow' bit
Summary: Was trying to understand how complicated it would be to write a clang-tidy `openmp-exception-escape`-ish check once D57100 lands.
Just
[ASTDumper][OpenMP] CapturedDecl has a 'nothrow' bit
Summary: Was trying to understand how complicated it would be to write a clang-tidy `openmp-exception-escape`-ish check once D57100 lands.
Just so it happens, all the data is already there, it is just conveniently omitted from AST dump.
Reviewers: aaron.ballman, steveire, ABataev
Reviewed By: ABataev
Subscribers: ABataev, guansong, cfe-commits
Tags: #openmp, #clang
Differential Revision: https://reviews.llvm.org/D57452
llvm-svn: 352631
show more ...
|
| #
aecce85d |
| 29-Jan-2019 |
Stephen Kelly <[email protected]> |
NFC: Move GenericSelectionExpr dump to NodeDumper
Reviewers: aaron.ballman
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D56961
llvm-svn: 352558
|
| #
fbf40f45 |
| 29-Jan-2019 |
Stephen Kelly <[email protected]> |
NFC: Implement GenericSelectionExpr::Association dump with Visitor
Reviewers: aaron.ballman
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D56960
llvm-svn: 352552
|
| #
1ec7fd35 |
| 29-Jan-2019 |
Bruno Ricci <[email protected]> |
Re-commit "[AST] Introduce GenericSelectionExpr::Association"
This time with a fix to make gcc 4.8 happy.
llvm-svn: 352486
|