diff options
author | John McCall <rjmccall@apple.com> | 2014-03-10 22:27:33 +0000 |
---|---|---|
committer | John McCall <rjmccall@apple.com> | 2014-03-10 22:27:33 +0000 |
commit | e54d92b0f11d006c67cf1cb28743abf635e31658 (patch) | |
tree | f99e9b0e07cc6eeb3f0394ff2f77f4d783be294d /clang/lib/CodeGen | |
parent | 922592a80465942b8e703a30add21c319f695832 (diff) | |
download | bcm5719-llvm-e54d92b0f11d006c67cf1cb28743abf635e31658.tar.gz bcm5719-llvm-e54d92b0f11d006c67cf1cb28743abf635e31658.zip |
RTTI symbols for visible local types may need weak linkage.
Previously, we would always emit them with internal linkage,
but with hidden visibility when the function was hidden, which
is an illegal combination, which could lead LLVM to actually
emit them as strong hidden symbols with hilarious results.
rdar://16265084
llvm-svn: 203503
Diffstat (limited to 'clang/lib/CodeGen')
-rw-r--r-- | clang/lib/CodeGen/CGRTTI.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CGRTTI.cpp b/clang/lib/CodeGen/CGRTTI.cpp index 455ee972f5c..8851209d08b 100644 --- a/clang/lib/CodeGen/CGRTTI.cpp +++ b/clang/lib/CodeGen/CGRTTI.cpp @@ -332,11 +332,11 @@ getTypeInfoLinkage(CodeGenModule &CGM, QualType Ty) { switch (Ty->getLinkage()) { case NoLinkage: - case VisibleNoLinkage: case InternalLinkage: case UniqueExternalLinkage: return llvm::GlobalValue::InternalLinkage; + case VisibleNoLinkage: case ExternalLinkage: if (!CGM.getLangOpts().RTTI) { // RTTI is not enabled, which means that this type info struct is going |