]> granicus.if.org Git - clang/commit
It turns out that linkers (at least, the Darwin linker) don't necessarily
authorJohn McCall <rjmccall@apple.com>
Thu, 5 Aug 2010 20:39:18 +0000 (20:39 +0000)
committerJohn McCall <rjmccall@apple.com>
Thu, 5 Aug 2010 20:39:18 +0000 (20:39 +0000)
commit7a536907da776bdc47a704e7cafd641e8150e653
tree3088d52bb8305a2f6d6d8250d84f966fadd6e03b
parent86e83730b5c1dd9d38b9c9317abbf691a617d63f
It turns out that linkers (at least, the Darwin linker) don't necessarily
do the right thing with mixed-visibility symbols, so disable the visibility
optimization where that's possible, i.e. with template classes (since it's
possible that an arbitrary template might be subject to an explicit
instantiation elsewhere).  447.dealII actually does this.

I've put the code under an option that's currently not hooked up to anything.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110374 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Frontend/CodeGenOptions.h
lib/CodeGen/CGVTables.cpp
lib/CodeGen/CodeGenModule.cpp
test/CodeGenCXX/mangle-subst-std.cpp
test/CodeGenCXX/rtti-linkage.cpp
test/CodeGenCXX/virt-template-vtable.cpp
test/CodeGenCXX/vtable-linkage.cpp