diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2011-12-26 22:42:47 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2011-12-26 22:42:47 +0000 |
commit | 5df37bd0242e838e465f0bd51a70af424d152053 (patch) | |
tree | 31786b024d305cffee45a1ab48cf850b0bfe8aef /lib/Sema/SemaTemplateInstantiateDecl.cpp | |
parent | 89ea416d3f75a78a8bf5398e316e2a6281ed57b7 (diff) |
Delay checking of typedefs of dependent types. Fixes PR11630.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147281 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Sema/SemaTemplateInstantiateDecl.cpp')
-rw-r--r-- | lib/Sema/SemaTemplateInstantiateDecl.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/Sema/SemaTemplateInstantiateDecl.cpp b/lib/Sema/SemaTemplateInstantiateDecl.cpp index 53adf68cd9..1f87983805 100644 --- a/lib/Sema/SemaTemplateInstantiateDecl.cpp +++ b/lib/Sema/SemaTemplateInstantiateDecl.cpp @@ -169,7 +169,12 @@ Decl *TemplateDeclInstantiator::InstantiateTypedefNameDecl(TypedefNameDecl *D, if (!InstPrev) return 0; - Typedef->setPreviousDeclaration(cast<TypedefNameDecl>(InstPrev)); + TypedefNameDecl *InstPrevTypedef = cast<TypedefNameDecl>(InstPrev); + + // If the typedef types are not identical, reject them. + SemaRef.isIncompatibleTypedef(InstPrevTypedef, Typedef); + + Typedef->setPreviousDeclaration(InstPrevTypedef); } SemaRef.InstantiateAttrs(TemplateArgs, D, Typedef); |