forked from OSchip/llvm-project
[Concepts] Fix ast dump for immediately declared constraint.
Reviewed By: nridge Differential Revision: https://reviews.llvm.org/D84461
This commit is contained in:
parent
5ee07dc53f
commit
c0bd9fa137
|
@ -1994,7 +1994,7 @@ void TextNodeDumper::VisitTemplateTypeParmDecl(const TemplateTypeParmDecl *D) {
|
|||
dumpBareDeclRef(TC->getFoundDecl());
|
||||
OS << ")";
|
||||
}
|
||||
Visit(TC->getImmediatelyDeclaredConstraint());
|
||||
AddChild([=] { Visit(TC->getImmediatelyDeclaredConstraint()); });
|
||||
} else if (D->wasDeclaredWithTypename())
|
||||
OS << " typename";
|
||||
else
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
// RUN: %clang_cc1 -triple x86_64-unknown-unknown -std=c++2a -ast-dump -ast-dump-filter Foo %s | FileCheck -strict-whitespace %s
|
||||
|
||||
// Test with serialization:
|
||||
// RUN: %clang_cc1 -std=c++20 -triple x86_64-unknown-unknown -emit-pch -o %t %s
|
||||
// RUN: %clang_cc1 -x c++ -std=c++20 -triple x86_64-unknown-unknown -include-pch %t \
|
||||
// RUN: -ast-dump-all -ast-dump-filter Foo /dev/null \
|
||||
// RUN: | FileCheck --strict-whitespace %s
|
||||
|
||||
template <typename T, typename U>
|
||||
concept binary_concept = true;
|
||||
|
||||
template <typename T>
|
||||
struct Foo {
|
||||
// CHECK: TemplateTypeParmDecl {{.*}} referenced Concept {{.*}} 'binary_concept'
|
||||
// CHECK-NEXT: |-ConceptSpecializationExpr {{.*}} 'bool'
|
||||
// CHECK-NEXT: `-TemplateArgument {{.*}} type 'int'
|
||||
template <binary_concept<int> R>
|
||||
Foo(R);
|
||||
};
|
Loading…
Reference in New Issue