summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
diff options
context:
space:
mode:
authorJohn McCall <rjmccall@apple.com>2014-03-10 22:27:33 +0000
committerJohn McCall <rjmccall@apple.com>2014-03-10 22:27:33 +0000
commite54d92b0f11d006c67cf1cb28743abf635e31658 (patch)
treef99e9b0e07cc6eeb3f0394ff2f77f4d783be294d /clang/lib/CodeGen
parent922592a80465942b8e703a30add21c319f695832 (diff)
downloadbcm5719-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.cpp2
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
OpenPOWER on IntegriCloud