diff options
author | Eli Friedman <eli.friedman@gmail.com> | 2009-12-08 05:40:03 +0000 |
---|---|---|
committer | Eli Friedman <eli.friedman@gmail.com> | 2009-12-08 05:40:03 +0000 |
commit | 7316819fcf056e26d159b7f8ac0f7d9448c4e40f (patch) | |
tree | 80a35f980f89968d98689cff388f6ec95d140a4f /clang/lib/AST/DeclBase.cpp | |
parent | ff09559a8f7eb5ad8a6c77a348b24fdad6d0b9bf (diff) | |
download | bcm5719-llvm-7316819fcf056e26d159b7f8ac0f7d9448c4e40f.tar.gz bcm5719-llvm-7316819fcf056e26d159b7f8ac0f7d9448c4e40f.zip |
Fix for PR5710: make sure to put function template specializations into the
DeclContext, so they don't completely disappear from the AST.
I don't particularly like this fix, but I don't see any obviously better way
to deal with it, and I think it's pretty clearly an improvement; comments
welcome.
llvm-svn: 90835
Diffstat (limited to 'clang/lib/AST/DeclBase.cpp')
-rw-r--r-- | clang/lib/AST/DeclBase.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/clang/lib/AST/DeclBase.cpp b/clang/lib/AST/DeclBase.cpp index f276faf1bee..c557e615e78 100644 --- a/clang/lib/AST/DeclBase.cpp +++ b/clang/lib/AST/DeclBase.cpp @@ -741,6 +741,9 @@ void DeclContext::makeDeclVisibleInContext(NamedDecl *D, bool Recoverable) { // from being visible? if (isa<ClassTemplateSpecializationDecl>(D)) return; + if (FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) + if (FD->isFunctionTemplateSpecialization()) + return; DeclContext *PrimaryContext = getPrimaryContext(); if (PrimaryContext != this) { |