aboutsummaryrefslogtreecommitdiff
path: root/include/clang/Frontend/CodeGenOptions.h
diff options
context:
space:
mode:
authorJohn McCall <rjmccall@apple.com>2010-08-05 20:39:18 +0000
committerJohn McCall <rjmccall@apple.com>2010-08-05 20:39:18 +0000
commit7a536907da776bdc47a704e7cafd641e8150e653 (patch)
tree3088d52bb8305a2f6d6d8250d84f966fadd6e03b /include/clang/Frontend/CodeGenOptions.h
parent86e83730b5c1dd9d38b9c9317abbf691a617d63f (diff)
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
Diffstat (limited to 'include/clang/Frontend/CodeGenOptions.h')
-rw-r--r--include/clang/Frontend/CodeGenOptions.h11
1 files changed, 7 insertions, 4 deletions
diff --git a/include/clang/Frontend/CodeGenOptions.h b/include/clang/Frontend/CodeGenOptions.h
index 2918f4e9d3..63f247b5a9 100644
--- a/include/clang/Frontend/CodeGenOptions.h
+++ b/include/clang/Frontend/CodeGenOptions.h
@@ -46,7 +46,12 @@ public:
/// internal state before optimizations are
/// done.
unsigned DisableRedZone : 1; /// Set when -mno-red-zone is enabled.
+ unsigned EmitDeclMetadata : 1; /// Emit special metadata indicating what Decl*
+ /// various IR entities came from. Only useful
+ /// when running CodeGen as a subroutine.
unsigned FunctionSections : 1; /// Set when -ffunction-sections is enabled
+ unsigned EmitWeakTemplatesHidden : 1; /// Emit weak vtables and typeinfo for
+ /// template classes with hidden visibility
unsigned InstrumentFunctions : 1; /// Set when -finstrument-functions is enabled
unsigned MergeAllConstants : 1; /// Merge identical constants.
unsigned NoCommon : 1; /// Set when -fno-common or C++ is enabled.
@@ -67,9 +72,6 @@ public:
unsigned UnwindTables : 1; /// Emit unwind tables.
unsigned VerifyModule : 1; /// Control whether the module should be run
/// through the LLVM Verifier.
- unsigned EmitDeclMetadata : 1; /// Emit special metadata indicating what Decl*
- /// various IR entities came from. Only useful
- /// when running CodeGen as a subroutine.
/// The code model to use (-mcmodel).
std::string CodeModel;
@@ -108,7 +110,9 @@ public:
DisableFPElim = 0;
DisableLLVMOpts = 0;
DisableRedZone = 0;
+ EmitDeclMetadata = 0;
FunctionSections = 0;
+ EmitWeakTemplatesHidden = 0;
MergeAllConstants = 1;
NoCommon = 0;
NoImplicitFloat = 0;
@@ -125,7 +129,6 @@ public:
UnrollLoops = 0;
UnwindTables = 0;
VerifyModule = 1;
- EmitDeclMetadata = 0;
Inlining = NoInlining;
RelocationModel = "pic";