hanchenye-llvm-project/clang/lib/ASTMatchers
Gabor Marton 7df342a4d1 [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
2018-12-17 12:42:12 +00:00
..
Dynamic [ASTImporter] Fix redecl chain of classes and class templates 2018-12-17 12:42:12 +00:00
ASTMatchFinder.cpp Fix parens warning in assert in ASTMatchFinder 2018-11-15 21:35:35 +00:00
ASTMatchersInternal.cpp [ASTImporter] Fix redecl chain of classes and class templates 2018-12-17 12:42:12 +00:00
CMakeLists.txt