brintos

brintos / llvm-project-archived public Read only

0
0
Text · 17.3 KiB · ffd0819 Raw
337 lines · c
1// Test that the GCC fast-math floating point flags get lowered to the correct2// permutation of Clang frontend flags. This is non-trivial for a few reasons.3// First, the GCC flags have many different and surprising effects. Second,4// LLVM only supports three switches which is more coarse grained than GCC's5// support.6//7// Both of them use gcc driver for as.8//9// RUN: %clang -### -fno-honor-infinities -c %s 2>&1 \10// RUN:   | FileCheck --check-prefixes=CHECK,NINF,NO-NNAN,NO-FINITE-ONLY %s11// infinites [sic] is a supported alternative spelling of infinities.12// RUN: %clang -### -fno-honor-infinites -c %s 2>&1 \13// RUN:   | FileCheck --check-prefixes=CHECK,NINF,NO-NNAN,NO-FINITE-ONLY %s14//15// RUN: %clang -### -fno-fast-math -fno-honor-infinities -c %s 2>&1 \16// RUN:   | FileCheck --check-prefixes=CHECK,NO-FAST,NINF,NO-NNAN,NO-FINITE-ONLY %s17//18// RUN: %clang -### -fno-honor-infinities -fno-fast-math -c %s 2>&1 \19// RUN:   | FileCheck --check-prefixes=CHECK,NO-FAST,NO-NINF,NO-NNAN,NO-FINITE-ONLY %s20//21// RUN: %clang -### -fno-signed-zeros -c %s 2>&1 \22// RUN:   | FileCheck --check-prefixes=CHECK,NSZ,NOROUNDING %s23//24// RUN: %clang -### -fno-fast-math -fno-signed-zeros -c %s 2>&1 \25// RUN:   | FileCheck --check-prefixes=CHECK,NO-FAST,NSZ %s26//27// RUN: %clang -### -fno-signed-zeros -fno-fast-math -c %s 2>&1 \28// RUN:   | FileCheck --check-prefixes=CHECK,NO-FAST,NO-NSZ,NOROUNDING %s29//30// RUN: %clang -### -freciprocal-math -c %s 2>&1 \31// RUN:   | FileCheck --check-prefixes=CHECK,ARCP,NOROUNDING %s32//33// RUN: %clang -### -fno-fast-math -freciprocal-math -c %s 2>&1 \34// RUN:   | FileCheck --check-prefixes=CHECK,ARCP,NOROUNDING %s35//36// RUN: %clang -### -freciprocal-math -fno-fast-math -c %s 2>&1 \37// RUN:   | FileCheck --check-prefixes=CHECK,NO-ARCP,NOROUNDING %s38//39// RUN: %clang -### -fno-honor-nans -c %s 2>&1 \40// RUN:   | FileCheck --check-prefixes=CHECK,NNAN,NO-NINF,NO-FINITE-ONLY,NOROUNDING %s41//42// RUN: %clang -### -fno-fast-math -fno-honor-nans -c %s 2>&1 \43// RUN:   | FileCheck --check-prefixes=CHECK,NO-FAST,NNAN,NO-NINF,NO-FINITE-ONLY,NOROUNDING %s44//45// RUN: %clang -### -fno-honor-nans -fno-fast-math -c %s 2>&1 \46// RUN:   | FileCheck --check-prefixes=CHECK,NO-FAST,NO-NNAN,NO-NINF,NO-FINITE-ONLY,NOROUNDING %s47//48// RUN: %clang -### -ffast-math -fno-approx-func -c %s 2>&1 \49// RUN:   | FileCheck --check-prefixes=CHECK,NO-FAST,NINF,NNAN,FINITE-ONLY,NSZ,ARCP,NO-AFN,NO-ERRNO,NOROUNDING %s50//51// RUN: %clang -### -fno-approx-func -ffast-math -c %s 2>&1 \52// RUN:   | FileCheck --check-prefixes=CHECK,FAST,NINF,NNAN,FINITE-ONLY,NSZ,ARCP,AFN,NO-ERRNO,NOROUNDING %s53//54// RUN: %clang -### -fapprox-func -c %s 2>&1 \55// RUN:   | FileCheck --check-prefixes=CHECK,AFN %s56//57// RUN: %clang -### -fno-fast-math -fapprox-func -c %s 2>&1 \58// RUN:   | FileCheck --check-prefixes=CHECK,NO-FAST,AFN,NOROUNDING %s59//60// RUN: %clang -### -fapprox-func -fno-fast-math -c %s 2>&1 \61// RUN:   | FileCheck --check-prefixes=CHECK,NO-FAST,NO-AFN %s62//63// RUN: %clang -### -fmath-errno -c %s 2>&1 \64// RUN:   | FileCheck --check-prefixes=CHECK,NO-FAST,ERRNO %s65//66// RUN: %clang -### -fmath-errno -fno-math-errno -c %s 2>&1 \67// RUN:   | FileCheck --check-prefixes=CHECK,NO-ERRNO %s68//69// Target defaults for -fmath-errno (reusing the above checks).70// RUN: %clang -### --target=i686-unknown-linux -c %s 2>&1 \71// RUN:   | FileCheck --check-prefixes=CHECK,ERRNO %s72// RUN: %clang -### -target i686-apple-darwin -c %s 2>&1 \73// RUN:   | FileCheck --check-prefixes=CHECK,NO-ERRNO %s74// RUN: %clang -### --target=x86_64-unknown-freebsd -c %s 2>&1 \75// RUN:   | FileCheck --check-prefixes=CHECK,NO-ERRNO %s76// RUN: %clang -### --target=x86_64-unknown-netbsd -c %s 2>&1 \77// RUN:   | FileCheck --check-prefixes=CHECK,NO-ERRNO %s78// RUN: %clang -### --target=x86_64-unknown-openbsd -c %s 2>&1 \79// RUN:   | FileCheck --check-prefixes=CHECK,NO-ERRNO %s80// RUN: %clang -### --target=x86_64-unknown-haiku -c %s 2>&1 \81// RUN:   | FileCheck --check-prefixes=CHECK,NO-ERRNO %s82// RUN: %clang -### --target=x86_64-unknown-dragonfly -c %s 2>&1 \83// RUN:   | FileCheck --check-prefixes=CHECK,NO-ERRNO %s84// RUN: %clang -### --target=x86_64-fuchsia -c %s 2>&1 \85// RUN:   | FileCheck --check-prefixes=CHECK,NO-ERRNO %s86// RUN: %clang -### --target=x86_64-linux-android -c %s 2>&1 \87// RUN:   | FileCheck --check-prefixes=CHECK,NO-ERRNO %s88// RUN: %clang -### --target=x86_64-linux-musl -c %s 2>&1 \89// RUN:   | FileCheck --check-prefixes=CHECK,NO-ERRNO %s90// RUN: %clang -### --target=amdgcn-amd-amdhsa -nogpuinc -nogpulib -c %s 2>&1 \91// RUN:   | FileCheck --check-prefixes=CHECK,NO-ERRNO %s92// RUN: %clang -### --target=amdgcn-amd-amdpal -c %s 2>&1 \93// RUN:   | FileCheck --check-prefixes=CHECK,NO-ERRNO %s94// RUN: %clang -### --target=amdgcn-mesa-mesa3d -c %s 2>&1   \95// RUN:   | FileCheck --check-prefixes=CHECK,NO-ERRNO %s96//97// Check that -ffast-math disables -fmath-errno, and -fno-fast-math merely98// preserves the target default. Also check various flag set operations between99// the two flags. (Resuses above checks.)100// RUN: %clang -### -ffast-math -c %s 2>&1 \101// RUN:   | FileCheck --check-prefixes=CHECK,NO-ERRNO %s102// RUN: %clang -### -fmath-errno -ffast-math -c %s 2>&1 \103// RUN:   | FileCheck --check-prefixes=CHECK,NO-ERRNO %s104// RUN: %clang -### -ffast-math -fmath-errno -c %s 2>&1 \105// RUN:   | FileCheck --check-prefixes=CHECK,ERRNO %s106// RUN: %clang -### --target=i686-unknown-linux -fno-fast-math -c %s 2>&1 \107// RUN:   | FileCheck --check-prefixes=CHECK,ERRNO %s108// RUN: %clang -### --target=i686-unknown-linux -fno-math-errno -fno-fast-math -c %s 2>&1 \109// RUN:   | FileCheck --check-prefixes=CHECK,ERRNO %s110// RUN: %clang -### -target i686-apple-darwin -fno-fast-math -c %s 2>&1 \111// RUN:   | FileCheck --check-prefixes=CHECK,NO-ERRNO %s112// RUN: %clang -### -target i686-apple-darwin -fno-math-errno -fno-fast-math -c %s 2>&1 \113// RUN:   | FileCheck --check-prefixes=CHECK,NO-ERRNO %s114// RUN: %clang -### -fno-fast-math -fno-math-errno -c %s 2>&1 \115// RUN:   | FileCheck --check-prefixes=CHECK,NO-ERRNO %s116//117// RUN: %clang -### -fno-math-errno -fassociative-math -freciprocal-math \118// RUN:     -fno-signed-zeros -fno-trapping-math -fapprox-func -c %s 2>&1 \119// RUN:   | FileCheck --check-prefixes=CHECK,NO-ERRNO,UNSAFE,ARCP,NSZ,NO-TRAPPING,REASSOC %s120//121// RUN: %clang -### -fno-fast-math -fno-math-errno -fassociative-math -freciprocal-math \122// RUN:     -fno-signed-zeros -fno-trapping-math -fapprox-func -c %s 2>&1 \123// RUN:   | FileCheck --check-prefixes=CHECK,NO-ERRNO,UNSAFE,ARCP,NSZ,NO-TRAPPING,REASSOC %s124 125// The 2nd -fno-fast-math overrides -fassociative-math.126 127// RUN: %clang -### -fno-fast-math -fno-math-errno -fassociative-math -freciprocal-math \128// RUN:     -fno-fast-math -fno-signed-zeros -fno-trapping-math -c %s 2>&1 \129// RUN:   | FileCheck --check-prefixes=CHECK,NO-UNSAFE,NO-REASSOC,NO-ARCP,NSZ,NO-TRAPPING %s130//131// Check that various umbrella flags also enable these frontend options.132// RUN: %clang -### -ffast-math -c %s 2>&1 \133// RUN:   | FileCheck --check-prefixes=CHECK,FAST,NINF,NNAN,FINITE-ONLY,REASSOC,NSZ,ARCP,AFN,CONTRACT-FAST,NO-ERRNO,NOROUNDING %s134// RUN: %clang -### -ffinite-math-only -c %s 2>&1 \135// RUN:   | FileCheck --check-prefixes=CHECK,NINF,NNAN,FINITE-ONLY %s136// RUN: %clang -### -funsafe-math-optimizations -fno-math-errno -c %s 2>&1 \137// RUN:   | FileCheck --check-prefixes=CHECK,NO-FAST,NO-NNAN,NO-NINF,NO-FINITE-ONLY,REASSOC,NSZ,ARCP,AFN,CONTRACT-FAST,NO-ERRNO,NOROUNDING %s138//139// One umbrella flag is *really* weird and also changes the semantics of the140// program by adding a special preprocessor macro. Check that the frontend flag141// modeling this semantic change is provided. Also check that the flag is not142// present if any of the optimizations are disabled.143// RUN: %clang -### -fno-fast-math -ffast-math -c %s 2>&1 \144// RUN:   | FileCheck --check-prefixes=CHECK,FAST,NINF,NNAN,FINITE-ONLY,REASSOC,NSZ,ARCP,AFN,CONTRACT-FAST,NO-ERRNO,NOROUNDING %s145// RUN: %clang -### -funsafe-math-optimizations -ffinite-math-only \146// RUN:     -fno-math-errno -ffp-contract=fast -fno-rounding-math -c %s 2>&1 \147// RUN:   | FileCheck --check-prefixes=CHECK,FAST,NINF,NNAN,FINITE-ONLY,NSZ,ARCP,AFN,CONTRACT-FAST,NO-ERRNO,NOROUNDING %s148// RUN: %clang -### -fno-honor-infinities -fno-honor-nans -fno-math-errno \149// RUN:     -fassociative-math -freciprocal-math -fno-signed-zeros -fapprox-func \150// RUN:     -fno-trapping-math -ffp-contract=fast -fno-rounding-math -c %s 2>&1 \151// RUN:   | FileCheck --check-prefixes=CHECK,FAST,NINF,NNAN,FINITE-ONLY,NSZ,ARCP,AFN,CONTRACT-FAST,NO-ERRNO,NOROUNDING %s152//153// RUN: %clang -### -ffast-math -fno-fast-math -c %s 2>&1 \154// RUN:   | FileCheck --check-prefixes=CHECK,NO-FAST,NO-NINF,NO-NNAN,NO-FINITE-ONLY,NO-REASSOC,NO-NSZ,NO-ARCP,NO-AFN,NOROUNDING %s155// RUN: %clang -### -ffast-math -fno-finite-math-only -c %s 2>&1 \156// RUN:   | FileCheck --check-prefixes=CHECK,NO-FAST,NO-NINF,NO-NNAN,NO-FINITE-ONLY,REASSOC,NSZ,ARCP,AFN,CONTRACT-FAST,NOROUNDING %s157 158// FIXME: This case leaves nnan and ninf. That seems wrong!159// RUN: %clang -### -ffast-math -fno-unsafe-math-optimizations -c %s 2>&1 \160// RUN:   | FileCheck --check-prefixes=CHECK,NO-FAST,NINF,NNAN,FINITE-ONLY,NO-REASSOC,NO-NSZ,NO-ARCP,NO-AFN,NOROUNDING,NO-TRAPPING %s161// RUN: %clang -### -ffast-math -fmath-errno -c %s 2>&1 \162// RUN:   | FileCheck --check-prefixes=CHECK,NO-FAST,NINF,NNAN,FINITE-ONLY,REASSOC,NSZ,ARCP,AFN,CONTRACT-FAST,ERRNO,NOROUNDING %s163// RUN: %clang -### -ffast-math -fno-associative-math -c %s 2>&1 \164// RUN:   | FileCheck --check-prefixes=CHECK,NO-FAST,NINF,NNAN,FINITE-ONLY,NO-REASSOC,NSZ,ARCP,AFN,CONTRACT-FAST,NO-ERRNO,NOROUNDING %s165//166// Check various means of disabling these flags, including disabling them after167// they've been enabled via an umbrella flag.168// RUN: %clang -### -fno-honor-infinities -fhonor-infinities -c %s 2>&1 \169// RUN:   | FileCheck --check-prefixes=CHECK,NO-NINF,NO-NNAN,NO-FINITE-ONLY %s170// RUN: %clang -### -ffinite-math-only -fhonor-infinities -c %s 2>&1 \171// RUN:   | FileCheck --check-prefixes=CHECK,NO-NINF,NNAN,NO-FINITE-ONLY %s172// RUN: %clang -### -ffinite-math-only -fno-finite-math-only -c %s 2>&1 \173// RUN:   | FileCheck --check-prefixes=CHECK,NO-NINF,NO-NNAN,NO-FINITE-ONLY %s174// RUN: %clang -### -ffast-math -fhonor-infinities -c %s 2>&1 \175// RUN:   | FileCheck --check-prefixes=CHECK,NO-FAST,NO-NINF,NNAN,NO-FINITE-ONLY,REASSOC,NSZ,ARCP,AFN,CONTRACT-FAST,NO-ERRNO,NOROUNDING %s176// RUN: %clang -### -ffast-math -fno-finite-math-only -c %s 2>&1 \177// RUN:   | FileCheck --check-prefixes=CHECK,NO-FAST,NO-NINF,NO-NNAN,NO-FINITE-ONLY,REASSOC,NSZ,ARCP,AFN,CONTRACT-FAST,NO-ERRNO,NOROUNDING %s178//179// RUN: %clang -### -fno-honor-nans -fhonor-nans -c %s 2>&1 \180// RUN:   | FileCheck --check-prefixes=CHECK,NO-NINF,NO-NNAN,NO-FINITE-ONLY %s181// RUN: %clang -### -ffinite-math-only -fhonor-nans -c %s 2>&1 \182// RUN:   | FileCheck --check-prefixes=CHECK,NINF,NO-NNAN,NO-FINITE-ONLY %s183// RUN: %clang -### -ffinite-math-only -fno-finite-math-only -c %s 2>&1 \184// RUN:   | FileCheck --check-prefixes=CHECK,NO-NINF,NO-NNAN,NO-FINITE-ONLY %s185// RUN: %clang -### -ffast-math -fhonor-nans -c %s 2>&1 \186// RUN:   | FileCheck --check-prefixes=CHECK,NINF,NO-NNAN,NO-FINITE-ONLY %s187// RUN: %clang -### -ffast-math -fno-finite-math-only -c %s 2>&1 \188// RUN:   | FileCheck --check-prefixes=CHECK,NO-NINF,NO-NNAN,NO-FINITE-ONLY %s189 190// A later inverted option overrides an earlier option.191 192// RUN: %clang -### -fassociative-math -freciprocal-math -fno-signed-zeros \193// RUN:     -fno-trapping-math -fno-associative-math -c %s 2>&1 \194// RUN:   | FileCheck --check-prefixes=CHECK,NO-REASSOC,ARCP,NSZ,NO-TRAPPING %s195 196// RUN: %clang -### -funsafe-math-optimizations -fno-associative-math -c %s 2>&1 \197// RUN:   | FileCheck --check-prefixes=CHECK,NO-UNSAFE,NO-REASSOC,ARCP,NSZ,AFN %s198 199// RUN: %clang -### -funsafe-math-optimizations -fno-reciprocal-math -c %s 2>&1 \200// RUN:   | FileCheck --check-prefixes=CHECK,NO-UNSAFE,REASSOC,NO-ARCP,NSZ,AFN %s201 202// reassoc requires nsz203// RUN: %clang -### -funsafe-math-optimizations -fsigned-zeros -c %s 2>&1 \204// RUN:   | FileCheck --check-prefixes=CHECK,NO-UNSAFE,NO-REASSOC,ARCP,NO-NSZ,AFN %s205 206// FIXME: Shouldn't trapping math disable all unsafe math?207// RUN: %clang -### -funsafe-math-optimizations -ftrapping-math -c %s 2>&1 \208// RUN:   | FileCheck --check-prefixes=CHECK,NO-UNSAFE,ARCP,NSZ,AFN,TRAPPING %s209 210// RUN: %clang -### -funsafe-math-optimizations -fno-unsafe-math-optimizations \211// RUN:     -c %s 2>&1 \212// RUN:   | FileCheck --check-prefixes=CHECK,NO-UNSAFE,NO-REASSOC,NO-ARCP,NO-NSZ,NO-AFN,NO-TRAPPING %s213// RUN: %clang -### -ffast-math -fno-associative-math -c %s 2>&1 \214// RUN:   | FileCheck --check-prefixes=CHECK,NO-UNSAFE,NO-REASSOC,ARCP,NSZ,AFN %s215 216// RUN: %clang -### -ffast-math -fno-reciprocal-math -c %s 2>&1 \217// RUN:   | FileCheck --check-prefixes=CHECK,NO-FAST,NO-UNSAFE,NNAN,NINF,FINITE-ONLY,REASSOC,NO-ARCP,CONTRACT-FAST,NSZ,AFN %s218 219// reassoc requires nsz220// RUN: %clang -### -ffast-math -fsigned-zeros -c %s 2>&1 \221// RUN:   | FileCheck --check-prefixes=CHECK,NO-FAST,NO-UNSAFE,NNAN,NINF,FINITE-ONLY,NO-REASSOC,ARCP,CONTRACT-FAST,NO-NSZ,AFN %s222 223// FIXME: Shouldn't trapping math disable unsafe math?224// RUN: %clang -### -ffast-math -ftrapping-math -c %s 2>&1 \225// RUN:   | FileCheck --check-prefixes=CHECK,NO-FAST,NO-UNSAFE,ARCP,NSZ,AFN,TRAPPING %s226 227// RUN: %clang -### -ffast-math -fno-unsafe-math-optimizations -c %s 2>&1 \228// RUN:   | FileCheck --check-prefixes=CHECK,NO-FAST,NO-UNSAFE,NO-ARCP,NO-NSZ,NO-AFN,NO-TRAPPING %s229 230// Reassociate is allowed because it does not require reciprocal-math.231 232// RUN: %clang -### -fassociative-math -freciprocal-math -fno-signed-zeros \233// RUN:     -fno-trapping-math -fno-reciprocal-math -c %s 2>&1 \234// RUN:   | FileCheck --check-prefixes=CHECK,REASSOC,NO-ARCP,NSZ,NO-TRAPPING %s235 236 237// In these runs, reassociate is not allowed because both no-signed-zeros and no-trapping-math are required.238 239// RUN: %clang -### -fassociative-math -freciprocal-math -fno-signed-zeros \240// RUN:     -fno-trapping-math -fsigned-zeros -c %s 2>&1 \241// RUN:   | FileCheck --check-prefixes=CHECK,NO-REASSOC,ARCP,NO-NSZ,NO-TRAPPING %s242 243// RUN: %clang -### -fassociative-math -freciprocal-math -fno-signed-zeros \244// RUN:     -fno-trapping-math -ftrapping-math -c %s 2>&1 \245// RUN:   | FileCheck --check-prefixes=CHECK,NO-REASSOC,ARCP,NSZ,TRAPPING %s246 247// The checks below allow stringing together prefixes to select the expected248// set of cc1 options for any combination of floating-point options.249// This is based on the assumption that the order of the flags when rendered250// is stable, so the negative checks only need to appear where the option would251// appear if used.252 253// start marker254// CHECK: "-cc1"255 256// NO-NINF-NOT:         "-menable-no-infs"257// NINF-SAME:           "-menable-no-infs"258 259// NO-NNAN-NOT:         "-menable-no-nans"260// NNAN-SAME:           "-menable-no-nans"261 262// NO-AFN-NOT:          "-fapprox-func"263// AFN-SAME:            "-fapprox-func"264 265// NO-ERRNO-NOT:        "-fmath-errno"266// ERRNO-SAME:          "-fmath-errno"267 268// NO-UNSAFE-NOT:       "-funsafe-math-optimizations"269// UNSAFE-SAME:         "-funsafe-math-optimizations"270 271// NO-NSZ-NOT:          "-fno-signed-zeros"272// NSZ-SAME:            "-fno-signed-zeros"273 274// NO-REASSOC-NOT:      "-mreassociate"275// REASSOC-SAME:        "-mreassociate"276 277// NO-ARCP-NOT:         "-freciprocal-math"278// ARCP-SAME:           "-freciprocal-math"279 280// NO-DENORM-NOT:       "-fdenormal-fp-math"281// DENORM-IEEE-SAME:    "-fdenormal-fp-math=ieee,ieee"282// DENORM-PS-SAME:      "-fdenormal-fp-math=preserve-sign,preserve-sign"283// DENORM-PZ-SAME:      "-fdenormal-fp-math=positive-zero,positive-zero"284 285// NO-CONTRACT-NOT:     "-ffp-contract"286// CONTRACT-OFF-SAME:   "-ffp-contract=off"287// CONTRACT-ON-SAME:    "-ffp-contract=on"288// CONTRACT-FAST-SAME:  "-ffp-contract=fast"289 290// This one is odd because -frounding-math is the default291// NO-NOROUNDING-NOT:   "-fno-rounding-math"292// NOROUNDING-SAME:     "-fno-rounding-math"293 294// NO-TRAPPING-NOT:     "-ffp-exception-behavior=strict"295// NO-TRAPPING-NOT:     "-ffp-exception-behavior=maytrap"296// TRAPPING-SAME:       "-ffp-exception-behavior=strict"297 298// NO-FAST-NOT:         "-ffast-math"299// FAST-SAME:           "-ffast-math"300 301// NO-FINITE-ONLY-NOT:  "-ffinite-math-only"302// FINITE-ONLY-SAME:    "-ffinite-math-only"303 304// NO-CX-RANGE-NOT:     "-complex-range"305// CX-RANGE-FULL-SAME:  "-complex-range=full"306// CX-RANGE-PROMO-SAME: "-complex-range=promoted"307// CX-RANGE-IMPRO-SAME: "-complex-range=improved"308// CX-RANGE-BASIC-SAME: "-complex-range=basic"309 310// end marker311// CHECK-SAME: "-o"312 313 314// This isn't fast-math, but the option is handled in the same place as other FP params.315// Last option wins, and strict behavior is assumed by default. 316 317// RUN: %clang -### -fno-strict-float-cast-overflow -c %s 2>&1 \318// RUN:   | FileCheck --check-prefix=CHECK-FPOV-WORKAROUND %s319// CHECK-FPOV-WORKAROUND: "-cc1"320// CHECK-FPOV-WORKAROUND: "-fno-strict-float-cast-overflow"321 322// RUN: %clang -### -c %s 2>&1 \323// RUN:   | FileCheck --check-prefix=CHECK-FPOV-WORKAROUND-DEFAULT %s324// CHECK-FPOV-WORKAROUND-DEFAULT: "-cc1"325// CHECK-FPOV-WORKAROUND-DEFAULT-NOT: "strict-float-cast-overflow"326 327// RUN: %clang -### -fstrict-float-cast-overflow -c %s 2>&1 \328// RUN:   | FileCheck --check-prefix=CHECK-NO-FPOV-WORKAROUND %s329// CHECK-NO-FPOV-WORKAROUND: "-cc1"330// CHECK-NO-FPOV-WORKAROUND-NOT: "strict-float-cast-overflow"331 332// RUN: %clang -### -fno-strict-float-cast-overflow -fstrict-float-cast-overflow -c %s 2>&1 \333// RUN:   | FileCheck --check-prefix=CHECK-NO-FPOV-WORKAROUND-OVERRIDE %s334// CHECK-NO-FPOV-WORKAROUND-OVERRIDE: "-cc1"335// CHECK-NO-FPOV-WORKAROUND-OVERRIDE-NOT: "strict-float-cast-overflow"336 337