]> granicus.if.org Git - clang/commit
Properly account for redeclarations when explicitly instantiating class templates.
authorJohn McCall <rjmccall@apple.com>
Fri, 26 Mar 2010 21:56:38 +0000 (21:56 +0000)
committerJohn McCall <rjmccall@apple.com>
Fri, 26 Mar 2010 21:56:38 +0000 (21:56 +0000)
commit2243288c4826905b5a0837f6f21d9d821688652e
tree4b2e38e11def7a51eb0d89810004348cf4453753
parent0fd8ff73630adab9a33123f23ef62fcf5c3cf326
Properly account for redeclarations when explicitly instantiating class templates.
What happens here is that we actually turn the first declaration into a
definition, regardless of whether it was actually originally a definition,
and furthermore we do this all after we've instantiated all the declarations.
This exposes a bug in my DefinitionData patch where it was only setting the
DefinitionData for previous declarations, not future declarations.
Fortunately, there's an iterator for that.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99657 91177308-0d34-0410-b5e6-96231b3b80d8
lib/AST/Decl.cpp
test/SemaTemplate/instantiate-member-class.cpp