[cfe-commits] r165005 - in /cfe/trunk: lib/Serialization/ASTReaderDecl.cpp test/Modules/Inputs/templates-top.h
Axel Naumann
Axel.Naumann at cern.ch
Tue Oct 2 06:06:13 PDT 2012
Author: axel
Date: Tue Oct 2 08:06:13 2012
New Revision: 165005
URL: http://llvm.org/viewvc/llvm-project?rev=165005&view=rev
Log:
Add redecls into their lexical DeclContext: this is what they assert on, and the merging should have set it correctly.
This is especially relevant for templatedDecls that might be injected (and thus have their DeclContext set to) somewhere completely different.
Modified:
cfe/trunk/lib/Serialization/ASTReaderDecl.cpp
cfe/trunk/test/Modules/Inputs/templates-top.h
Modified: cfe/trunk/lib/Serialization/ASTReaderDecl.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/ASTReaderDecl.cpp?rev=165005&r1=165004&r2=165005&view=diff
==============================================================================
--- cfe/trunk/lib/Serialization/ASTReaderDecl.cpp (original)
+++ cfe/trunk/lib/Serialization/ASTReaderDecl.cpp Tue Oct 2 08:06:13 2012
@@ -1775,7 +1775,7 @@
if (!AddResult || Existing)
return;
- DeclContext *DC = New->getDeclContext()->getRedeclContext();
+ DeclContext *DC = New->getLexicalDeclContext();
if (DC->isTranslationUnit() && Reader.SemaObj) {
if (Reader.SemaObj->IdResolver.tryAddTopLevelDecl(New, New->getDeclName()))
Reader.RedeclsAddedToAST.insert(New);
Modified: cfe/trunk/test/Modules/Inputs/templates-top.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/Inputs/templates-top.h?rev=165005&r1=165004&r2=165005&view=diff
==============================================================================
--- cfe/trunk/test/Modules/Inputs/templates-top.h (original)
+++ cfe/trunk/test/Modules/Inputs/templates-top.h Tue Oct 2 08:06:13 2012
@@ -4,3 +4,14 @@
public:
void push_back(T);
};
+
+namespace A {
+ class Y {
+ template <typename T> friend class WhereAmI;
+ };
+}
+
+template <typename T> class A::WhereAmI {
+public:
+ static void func() {}
+};
More information about the cfe-commits
mailing list