]> granicus.if.org Git - clang/commitdiff
[clang-cl] Map /GA to -ftls-model=local-exec
authorDavid Majnemer <david.majnemer@gmail.com>
Wed, 20 May 2015 04:39:56 +0000 (04:39 +0000)
committerDavid Majnemer <david.majnemer@gmail.com>
Wed, 20 May 2015 04:39:56 +0000 (04:39 +0000)
The /GA switch informs the compiler that it may assume that all TLS
access refers to the executable's index: 0.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@237771 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Driver/CLCompatOptions.td
test/Driver/cl-options.c

index 4726929e3ae8d0a3d53ffc10740a2d208bdba279..959a72e5389ea5c913115c0f072ea0610b5b3800 100644 (file)
@@ -63,6 +63,8 @@ def _SLASH_fp_except_ : CLFlag<"fp:except-">, HelpText<"">, Alias<fno_trapping_m
 def _SLASH_fp_fast : CLFlag<"fp:fast">, HelpText<"">, Alias<ffast_math>;
 def _SLASH_fp_precise : CLFlag<"fp:precise">, HelpText<"">, Alias<fno_fast_math>;
 def _SLASH_fp_strict : CLFlag<"fp:strict">, HelpText<"">, Alias<fno_fast_math>;
+def _SLASH_GA : CLFlag<"GA">, Alias<ftlsmodel_EQ>, AliasArgs<["local-exec"]>,
+  HelpText<"Assume thread-local variables are defined in the executable">;
 def _SLASH_GR : CLFlag<"GR">, HelpText<"Enable emission of RTTI data">;
 def _SLASH_GR_ : CLFlag<"GR-">, HelpText<"Disable emission of RTTI data">;
 def _SLASH_GF_ : CLFlag<"GF-">, HelpText<"Disable string pooling">,
@@ -281,7 +283,6 @@ def _SLASH_FU : CLJoinedOrSeparate<"FU">;
 def _SLASH_Fx : CLFlag<"Fx">;
 def _SLASH_G1 : CLFlag<"G1">;
 def _SLASH_G2 : CLFlag<"G2">;
-def _SLASH_GA : CLFlag<"GA">;
 def _SLASH_Ge : CLFlag<"Ge">;
 def _SLASH_Gh : CLFlag<"Gh">;
 def _SLASH_GH : CLFlag<"GH">;
index 52c572a939a255f329f630dba483f95cc05522fb..244e6869d0d503ce9dc7f1450e020676133f47e2 100644 (file)
@@ -48,6 +48,9 @@
 // fpstrict-NOT: -menable-unsafe-fp-math
 // fpstrict-NOT: -ffast-math
 
+// RUN: %clang_cl /GA -### -- %s 2>&1 | FileCheck -check-prefix=GA %s
+// GA: -ftls-model=local-exec
+
 // RTTI is on by default; just check that we don't error.
 // RUN: %clang_cl /Zs /GR -- %s 2>&1