From: David Majnemer Date: Wed, 20 May 2015 04:39:56 +0000 (+0000) Subject: [clang-cl] Map /GA to -ftls-model=local-exec X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7cfabab41b4feba76204b102636eed6f9d042f24;p=clang [clang-cl] Map /GA to -ftls-model=local-exec 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 --- diff --git a/include/clang/Driver/CLCompatOptions.td b/include/clang/Driver/CLCompatOptions.td index 4726929e3a..959a72e538 100644 --- a/include/clang/Driver/CLCompatOptions.td +++ b/include/clang/Driver/CLCompatOptions.td @@ -63,6 +63,8 @@ def _SLASH_fp_except_ : CLFlag<"fp:except-">, HelpText<"">, Alias, HelpText<"">, Alias; def _SLASH_fp_precise : CLFlag<"fp:precise">, HelpText<"">, Alias; def _SLASH_fp_strict : CLFlag<"fp:strict">, HelpText<"">, Alias; +def _SLASH_GA : CLFlag<"GA">, Alias, 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">; diff --git a/test/Driver/cl-options.c b/test/Driver/cl-options.c index 52c572a939..244e6869d0 100644 --- a/test/Driver/cl-options.c +++ b/test/Driver/cl-options.c @@ -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