forked from OSchip/llvm-project
Guard flag –fdenormal-fp-math with –fno-fast-math.
This allows disabling the FP options with just one flag (-fno-fast-math). Differential Revision: https://reviews.llvm.org/D25479 llvm-svn: 284121
This commit is contained in:
parent
bb1db210a8
commit
ee3c7e0d42
|
@ -4391,11 +4391,18 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
if (ReciprocalMath)
|
||||
CmdArgs.push_back("-freciprocal-math");
|
||||
|
||||
if (!TrappingMath)
|
||||
if (!TrappingMath)
|
||||
CmdArgs.push_back("-fno-trapping-math");
|
||||
|
||||
if (Args.hasArg(options::OPT_fdenormal_fp_math_EQ))
|
||||
Args.AddLastArg(CmdArgs, options::OPT_fdenormal_fp_math_EQ);
|
||||
|
||||
if (Arg *A = Args.getLastArg(options::OPT_ffast_math, FastMathAliasOption,
|
||||
options::OPT_fno_fast_math,
|
||||
options::OPT_funsafe_math_optimizations,
|
||||
options::OPT_fno_unsafe_math_optimizations,
|
||||
options::OPT_fdenormal_fp_math_EQ))
|
||||
if (A->getOption().getID() != options::OPT_fno_fast_math &&
|
||||
A->getOption().getID() != options::OPT_fno_unsafe_math_optimizations)
|
||||
Args.AddLastArg(CmdArgs, options::OPT_fdenormal_fp_math_EQ);
|
||||
|
||||
// Validate and pass through -fp-contract option.
|
||||
if (Arg *A = Args.getLastArg(options::OPT_ffast_math, FastMathAliasOption,
|
||||
|
|
|
@ -1,9 +1,12 @@
|
|||
// RUN: %clang -### -target arm-unknown-linux-gnu -c %s -fdenormal-fp-math=ieee -v 2>&1 | FileCheck -check-prefix=CHECK-IEEE %s
|
||||
// RUN: %clang -### -target arm-unknown-linux-gnu -c %s -fdenormal-fp-math=preserve-sign -v 2>&1 | FileCheck -check-prefix=CHECK-PS %s
|
||||
// RUN: %clang -### -target arm-unknown-linux-gnu -c %s -fdenormal-fp-math=positive-zero -v 2>&1 | FileCheck -check-prefix=CHECK-PZ %s
|
||||
// RUN: %clang -### -target arm-unknown-linux-gnu -c %s -fdenormal-fp-math=ieee -fno-fast-math -v 2>&1 | FileCheck -check-prefix=CHECK-NO-UNSAFE %s
|
||||
// RUN: %clang -### -target arm-unknown-linux-gnu -c %s -fdenormal-fp-math=ieee -fno-unsafe-math-optimizations -v 2>&1 | FileCheck -check-prefix=CHECK-NO-UNSAFE %s
|
||||
// RUN: not %clang -target arm-unknown-linux-gnu -c %s -fdenormal-fp-math=foo -v 2>&1 | FileCheck -check-prefix=CHECK-INVALID %s
|
||||
|
||||
// CHECK-IEEE: "-fdenormal-fp-math=ieee"
|
||||
// CHECK-PS: "-fdenormal-fp-math=preserve-sign"
|
||||
// CHECK-PZ: "-fdenormal-fp-math=positive-zero"
|
||||
// CHECK-NO-UNSAFE-NOT: "-fdenormal-fp-math=ieee"
|
||||
// CHECK-INVALID: error: invalid value 'foo' in '-fdenormal-fp-math=foo'
|
||||
|
|
Loading…
Reference in New Issue