forked from OSchip/llvm-project
clang-cl: Support the /fp options (PR23112)
This hooks up the /fp options as aliases for -f[no-]fast-math and -f[no]-trapping-math. It probably doesn't match cl.exe's behaviour completely (e.g. LLVM is currently never as precise as /fp:precise), but it's close enough. Differential revision: http://reviews.llvm.org/D8909 llvm-svn: 234449
This commit is contained in:
parent
e5b064205a
commit
7a2e5c260c
|
@ -58,6 +58,11 @@ def _SLASH_c : CLFlag<"c">, HelpText<"Compile only">, Alias<c>;
|
|||
def _SLASH_D : CLJoinedOrSeparate<"D">, HelpText<"Define macro">,
|
||||
MetaVarName<"<macro[=value]>">, Alias<D>;
|
||||
def _SLASH_E : CLFlag<"E">, HelpText<"Preprocess to stdout">, Alias<E>;
|
||||
def _SLASH_fp_except : CLFlag<"fp:except">, HelpText<"">, Alias<ftrapping_math>;
|
||||
def _SLASH_fp_except_ : CLFlag<"fp:except-">, HelpText<"">, Alias<fno_trapping_math>;
|
||||
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_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">,
|
||||
|
@ -257,7 +262,6 @@ def _SLASH_favor : CLJoined<"favor">;
|
|||
def _SLASH_FC : CLFlag<"FC">;
|
||||
def _SLASH_F : CLFlag<"F">;
|
||||
def _SLASH_Fm : CLJoined<"Fm">;
|
||||
def _SLASH_fp : CLJoined<"fp">;
|
||||
def _SLASH_Fp : CLJoined<"Fp">;
|
||||
def _SLASH_Fr : CLJoined<"Fr">;
|
||||
def _SLASH_FR : CLJoined<"FR">;
|
||||
|
|
|
@ -30,6 +30,24 @@
|
|||
// EP: "-P"
|
||||
// EP: "-o" "-"
|
||||
|
||||
// RUN: %clang_cl /fp:fast /fp:except -### -- %s 2>&1 | FileCheck -check-prefix=fpexcept %s
|
||||
// fpexcept-NOT: -menable-unsafe-fp-math
|
||||
|
||||
// RUN: %clang_cl /fp:fast /fp:except /fp:except- -### -- %s 2>&1 | FileCheck -check-prefix=fpexcept_ %s
|
||||
// fpexcept_: -menable-unsafe-fp-math
|
||||
|
||||
// RUN: %clang_cl /fp:precise /fp:fast -### -- %s 2>&1 | FileCheck -check-prefix=fpfast %s
|
||||
// fpfast: -menable-unsafe-fp-math
|
||||
// fpfast: -ffast-math
|
||||
|
||||
// RUN: %clang_cl /fp:fast /fp:precise -### -- %s 2>&1 | FileCheck -check-prefix=fpprecise %s
|
||||
// fpprecise-NOT: -menable-unsafe-fp-math
|
||||
// fpprecise-NOT: -ffast-math
|
||||
|
||||
// RUN: %clang_cl /fp:fast /fp:strict -### -- %s 2>&1 | FileCheck -check-prefix=fpstrict %s
|
||||
// fpstrict-NOT: -menable-unsafe-fp-math
|
||||
// fpstrict-NOT: -ffast-math
|
||||
|
||||
// RTTI is on by default; just check that we don't error.
|
||||
// RUN: %clang_cl /Zs /GR -- %s 2>&1
|
||||
|
||||
|
@ -243,7 +261,6 @@
|
|||
// RUN: /Fifoo \
|
||||
// RUN: /Fmfoo \
|
||||
// RUN: /FpDebug\main.pch \
|
||||
// RUN: /fp:precise \
|
||||
// RUN: /Frfoo \
|
||||
// RUN: /FRfoo \
|
||||
// RUN: /FU foo \
|
||||
|
|
Loading…
Reference in New Issue