From 7df342a4d1a6400646d7403104f840c218b0661d Mon Sep 17 00:00:00 2001 From: Gabor Marton Date: Mon, 17 Dec 2018 12:42:12 +0000 Subject: [ASTImporter] Fix redecl chain of classes and class templates Summary: The crux of the issue that is being fixed is that lookup could not find previous decls of a friend class. The solution involves making the friend declarations visible in their decl context (i.e. adding them to the lookup table). Also, we simplify `VisitRecordDecl` greatly. This fix involves two other repairs (without these the unittests fail): (1) We could not handle the addition of injected class types properly when a redecl chain was involved, now this is fixed. (2) DeclContext::removeDecl failed if the lookup table in Vector form did not contain the to be removed element. This caused troubles in ASTImporter::ImportDeclContext. This is also fixed. Reviewers: a_sidorin, balazske, a.sidorin Subscribers: rnkovacs, dkrupp, Szelethus, cfe-commits Differential Revision: https://reviews.llvm.org/D53655 llvm-svn: 349349 --- clang/docs/LibASTMatchersReference.html | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'clang/docs') diff --git a/clang/docs/LibASTMatchersReference.html b/clang/docs/LibASTMatchersReference.html index 28017cab39d5..27cb00b6bdfc 100644 --- a/clang/docs/LibASTMatchersReference.html +++ b/clang/docs/LibASTMatchersReference.html @@ -300,6 +300,16 @@ Example matches f +Matcher<Decl>indirectFieldDeclMatcher<IndirectFieldDecl>... +
Matches indirect field declarations.
+
+Given
+  struct X { struct { int a; }; };
+indirectFieldDecl()
+  matches 'a'.
+
+ + Matcher<Decl>labelDeclMatcher<LabelDecl>...
Matches a declaration of label.
 
-- 
cgit v1.2.3