diff options
| author | Rafael Espindola <rafael.espindola@gmail.com> | 2012-05-21 20:15:56 +0000 |
|---|---|---|
| committer | Rafael Espindola <rafael.espindola@gmail.com> | 2012-05-21 20:15:56 +0000 |
| commit | 93c289c28ab0117dc93f03268a82af645b29185e (patch) | |
| tree | e4fecd72baf2d365c407c56172fc1280755cd974 /clang/lib | |
| parent | 3169e80603c9496c250a2f74455d5ad12bc6ea6d (diff) | |
| download | bcm5719-llvm-93c289c28ab0117dc93f03268a82af645b29185e.tar.gz bcm5719-llvm-93c289c28ab0117dc93f03268a82af645b29185e.zip | |
Produce a hidden symbol for zed in
struct HIDDEN foo {
};
template <class P>
struct bar {
};
template <>
struct HIDDEN bar<foo> {
DEFAULT static void zed();
};
void bar<foo>::zed() {
}
Before we would produce a hidden symbol in
struct HIDDEN foo {
};
template <class P>
struct bar {
};
template <>
struct bar<foo> {
DEFAULT static void zed();
};
void bar<foo>::zed() {
}
But adding HIDDEN to the specialization would cause us to produce a default
symbol.
llvm-svn: 157206
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/AST/Decl.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/clang/lib/AST/Decl.cpp b/clang/lib/AST/Decl.cpp index d31cf0f0100..8bc9eb396e3 100644 --- a/clang/lib/AST/Decl.cpp +++ b/clang/lib/AST/Decl.cpp @@ -163,7 +163,7 @@ static bool shouldConsiderTemplateLV(const FunctionDecl *fn) { } static bool shouldConsiderTemplateLV(const ClassTemplateSpecializationDecl *d) { - return !d->hasAttr<VisibilityAttr>(); + return !d->hasAttr<VisibilityAttr>() || d->isExplicitSpecialization(); } static LinkageInfo getLVForNamespaceScopeDecl(const NamedDecl *D, |

