brintos

brintos / llvm-project-archived public Read only

0
0
Text · 30.6 KiB · 79650f8 Raw
607 lines · c
1// Test overriding warnings about complex range.2// range.c tests the settings of -complex-range=, and this test covers3// all warnings related to complex range.4 5// Clang options related to complex range are as follows:6//   -f[no-]fast-math7//   -f[no-]cx-limited-range8//   -f[no-]cx-fortran-rules9//   -fcomplex-arithmetic=[full|improved|promoted|basic]10//   -ffp-model=[strict|precise|fast|aggressive]11 12// Emit warnings about overriding when options implying different13// complex ranges are specified. However, warnings are not emitted in14// the following cases:15// (a) When the positive/negative form or a different value of the same16//     option is specified. 17//       Example: 18//          `-ffast-math -fno-fast-math`19//          `-fcx-limited-range -fno-cx-limited-range`20//          `-fcx-fortran-rules -fno-cx-fortran-rules`21//          `-fcomplex-arithmetic=full -fcomplex-arithmetic=improved`22//          `-ffp-model=strict -ffp-model=aggressive`23//24// (b) When -ffp-model= is overridden by -f[no-]fast-math. 25//       Example:26//          `-ffp-model=fast -fno-fast-math`27//          `-ffp-model=strict -ffast-math`28 29 30// RUN: %clang -### -Werror -ffast-math -fno-fast-math -c %s 2>&1 \31// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s32 33// RUN: %clang -### -Werror -ffast-math -fcx-limited-range -c %s 2>&1 \34// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s35 36// RUN: %clang -### -ffast-math -fno-cx-limited-range -c %s 2>&1 \37// RUN:   | FileCheck --check-prefixes=NOLIM-OVERRIDING,FAST-OVERRIDDEN %s38 39// RUN: %clang -### -ffast-math -fcx-fortran-rules -c %s 2>&1 \40// RUN:   | FileCheck --check-prefixes=FORT-OVERRIDING,FAST-OVERRIDDEN %s41 42// RUN: %clang -### -ffast-math -fno-cx-fortran-rules -c %s 2>&1 \43// RUN:   | FileCheck --check-prefixes=NOFORT-OVERRIDING,FAST-OVERRIDDEN %s44 45// RUN: %clang -### -ffast-math -fcomplex-arithmetic=full -c %s 2>&1 \46// RUN:   | FileCheck --check-prefixes=ARITH-FULL-OVERRIDING,FAST-OVERRIDDEN %s47 48// RUN: %clang -### -ffast-math -fcomplex-arithmetic=improved -c %s 2>&1 \49// RUN:   | FileCheck --check-prefixes=ARITH-IMPROVED-OVERRIDING,FAST-OVERRIDDEN %s50 51// RUN: %clang -### -ffast-math -fcomplex-arithmetic=promoted -c %s 2>&1 \52// RUN:   | FileCheck --check-prefixes=ARITH-PROMOTED-OVERRIDING,FAST-OVERRIDDEN %s53 54// RUN: %clang -### -Werror -ffast-math -fcomplex-arithmetic=basic -c %s 2>&1 \55// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s56 57// RUN: %clang -### -ffast-math -ffp-model=strict -c %s 2>&1 \58// RUN:   | FileCheck --check-prefixes=MODEL-STRICT-OVERRIDING,FAST-OVERRIDDEN %s59 60// RUN: %clang -### -ffast-math -ffp-model=precise -c %s 2>&1 \61// RUN:   | FileCheck --check-prefixes=MODEL-PRECISE-OVERRIDING,FAST-OVERRIDDEN %s62 63// RUN: %clang -### -ffast-math -ffp-model=fast -c %s 2>&1 \64// RUN:   | FileCheck --check-prefixes=MODEL-FAST-OVERRIDING,FAST-OVERRIDDEN %s65 66// RUN: %clang -### -Werror -ffast-math -ffp-model=aggressive -c %s 2>&1 \67// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s68 69// RUN: %clang -### -Werror -fno-fast-math -ffast-math -c %s 2>&1 \70// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s71 72// RUN: %clang -### -Werror -fno-fast-math -fcx-limited-range -c %s 2>&1 \73// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s74 75// RUN: %clang -### -Werror -fno-fast-math -fno-cx-limited-range -c %s 2>&1 \76// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s77 78// RUN: %clang -### -Werror -fno-fast-math -fcx-fortran-rules -c %s 2>&1 \79// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s80 81// RUN: %clang -### -Werror -fno-fast-math -fno-cx-fortran-rules -c %s 2>&1 \82// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s83 84// RUN: %clang -### -Werror -fno-fast-math -fcomplex-arithmetic=full -c %s 2>&1 \85// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s86 87// RUN: %clang -### -Werror -fno-fast-math -fcomplex-arithmetic=improved -c %s 2>&1 \88// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s89 90// RUN: %clang -### -Werror -fno-fast-math -fcomplex-arithmetic=promoted -c %s 2>&1 \91// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s92 93// RUN: %clang -### -Werror -fno-fast-math -fcomplex-arithmetic=basic -c %s 2>&1 \94// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s95 96// RUN: %clang -### -Werror -fno-fast-math -ffp-model=strict -c %s 2>&1 \97// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s98 99// RUN: %clang -### -Werror -fno-fast-math -ffp-model=precise -c %s 2>&1 \100// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s101 102// RUN: %clang -### -Werror -fno-fast-math -ffp-model=fast -c %s 2>&1 \103// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s104 105// RUN: %clang -### -Werror -fno-fast-math -ffp-model=aggressive -c %s 2>&1 \106// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s107 108// RUN: %clang -### -Werror -fcx-limited-range -ffast-math -c %s 2>&1 \109// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s110 111// RUN: %clang -### -fcx-limited-range -fno-fast-math -c %s 2>&1 \112// RUN:   | FileCheck --check-prefixes=NOFAST-OVERRIDING,LIM-OVERRIDDEN %s113 114// RUN: %clang -### -Werror -fcx-limited-range -fno-cx-limited-range -c %s 2>&1 \115// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s116 117// RUN: %clang -### -fcx-limited-range -fcx-fortran-rules -c %s 2>&1 \118// RUN:   | FileCheck --check-prefixes=FORT-OVERRIDING,LIM-OVERRIDDEN %s119 120// RUN: %clang -### -fcx-limited-range -fno-cx-fortran-rules -c %s 2>&1 \121// RUN:   | FileCheck --check-prefixes=NOFORT-OVERRIDING,LIM-OVERRIDDEN %s122 123// RUN: %clang -### -fcx-limited-range -fcomplex-arithmetic=full -c %s 2>&1 \124// RUN:   | FileCheck --check-prefixes=ARITH-FULL-OVERRIDING,LIM-OVERRIDDEN %s125 126// RUN: %clang -### -fcx-limited-range -fcomplex-arithmetic=improved -c %s 2>&1 \127// RUN:   | FileCheck --check-prefixes=ARITH-IMPROVED-OVERRIDING,LIM-OVERRIDDEN %s128 129// RUN: %clang -### -fcx-limited-range -fcomplex-arithmetic=promoted -c %s 2>&1 \130// RUN:   | FileCheck --check-prefixes=ARITH-PROMOTED-OVERRIDING,LIM-OVERRIDDEN %s131 132// RUN: %clang -### -Werror -fcx-limited-range -fcomplex-arithmetic=basic -c %s 2>&1 \133// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s134 135// RUN: %clang -### -fcx-limited-range -ffp-model=strict -c %s 2>&1 \136// RUN:   | FileCheck --check-prefixes=MODEL-STRICT-OVERRIDING,LIM-OVERRIDDEN %s137 138// RUN: %clang -### -fcx-limited-range -ffp-model=precise -c %s 2>&1 \139// RUN:   | FileCheck --check-prefixes=MODEL-PRECISE-OVERRIDING,LIM-OVERRIDDEN %s140 141// RUN: %clang -### -fcx-limited-range -ffp-model=fast -c %s 2>&1 \142// RUN:   | FileCheck --check-prefixes=MODEL-FAST-OVERRIDING,LIM-OVERRIDDEN %s143 144// RUN: %clang -### -Werror -fcx-limited-range -ffp-model=aggressive -c %s 2>&1 \145// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s146 147// RUN: %clang -### -fno-cx-limited-range -ffast-math -c %s 2>&1 \148// RUN:   | FileCheck --check-prefixes=FAST-OVERRIDING,NOLIM-OVERRIDDEN %s149 150// RUN: %clang -### -Werror -fno-cx-limited-range -fno-fast-math -c %s 2>&1 \151// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s152 153// RUN: %clang -### -Werror -fno-cx-limited-range -fcx-limited-range -c %s 2>&1 \154// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s155 156// RUN: %clang -### -fno-cx-limited-range -fcx-fortran-rules -c %s 2>&1 \157// RUN:   | FileCheck --check-prefixes=FORT-OVERRIDING,NOLIM-OVERRIDDEN %s158 159// RUN: %clang -### -Werror -fno-cx-limited-range -fno-cx-fortran-rules -c %s 2>&1 \160// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s161 162// RUN: %clang -### -Werror -fno-cx-limited-range -fcomplex-arithmetic=full -c %s 2>&1 \163// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s164 165// RUN: %clang -### -fno-cx-limited-range -fcomplex-arithmetic=improved -c %s 2>&1 \166// RUN:   | FileCheck --check-prefixes=ARITH-IMPROVED-OVERRIDING,NOLIM-OVERRIDDEN %s167 168// RUN: %clang -### -fno-cx-limited-range -fcomplex-arithmetic=promoted -c %s 2>&1 \169// RUN:   | FileCheck --check-prefixes=ARITH-PROMOTED-OVERRIDING,NOLIM-OVERRIDDEN %s170 171// RUN: %clang -### -fno-cx-limited-range -fcomplex-arithmetic=basic -c %s 2>&1 \172// RUN:   | FileCheck --check-prefixes=ARITH-BASIC-OVERRIDING,NOLIM-OVERRIDDEN %s173 174// RUN: %clang -### -Werror -fno-cx-limited-range -ffp-model=strict -c %s 2>&1 \175// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s176 177// RUN: %clang -### -Werror -fno-cx-limited-range -ffp-model=precise -c %s 2>&1 \178// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s179 180// RUN: %clang -### -fno-cx-limited-range -ffp-model=fast -c %s 2>&1 \181// RUN:   | FileCheck --check-prefixes=MODEL-FAST-OVERRIDING,NOLIM-OVERRIDDEN %s182 183// RUN: %clang -### -fno-cx-limited-range -ffp-model=aggressive -c %s 2>&1 \184// RUN:   | FileCheck --check-prefixes=MODEL-AGGRESSIVE-OVERRIDING,NOLIM-OVERRIDDEN %s185 186// RUN: %clang -### -fcx-fortran-rules -ffast-math -c %s 2>&1 \187// RUN:   | FileCheck --check-prefixes=FAST-OVERRIDING,FORT-OVERRIDDEN %s188 189// RUN: %clang -### -fcx-fortran-rules -fno-fast-math -c %s 2>&1 \190// RUN:   | FileCheck --check-prefixes=NOFAST-OVERRIDING,FORT-OVERRIDDEN %s191 192// RUN: %clang -### -fcx-fortran-rules -fcx-limited-range -c %s 2>&1 \193// RUN:   | FileCheck --check-prefixes=LIM-OVERRIDING,FORT-OVERRIDDEN %s194 195// RUN: %clang -### -fcx-fortran-rules -fno-cx-limited-range -c %s 2>&1 \196// RUN:   | FileCheck --check-prefixes=NOLIM-OVERRIDING,FORT-OVERRIDDEN %s197 198// RUN: %clang -### -Werror -fcx-fortran-rules -fno-cx-fortran-rules -c %s 2>&1 \199// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s200 201// RUN: %clang -### -fcx-fortran-rules -fcomplex-arithmetic=full -c %s 2>&1 \202// RUN:   | FileCheck --check-prefixes=ARITH-FULL-OVERRIDING,FORT-OVERRIDDEN %s203 204// RUN: %clang -### -Werror -fcx-fortran-rules -fcomplex-arithmetic=improved -c %s 2>&1 \205// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s206 207// RUN: %clang -### -fcx-fortran-rules -fcomplex-arithmetic=promoted -c %s 2>&1 \208// RUN:   | FileCheck --check-prefixes=ARITH-PROMOTED-OVERRIDING,FORT-OVERRIDDEN %s209 210// RUN: %clang -### -fcx-fortran-rules -fcomplex-arithmetic=basic -c %s 2>&1 \211// RUN:   | FileCheck --check-prefixes=ARITH-BASIC-OVERRIDING,FORT-OVERRIDDEN %s212 213// RUN: %clang -### -fcx-fortran-rules -ffp-model=strict -c %s 2>&1 \214// RUN:   | FileCheck --check-prefixes=MODEL-STRICT-OVERRIDING,FORT-OVERRIDDEN %s215 216// RUN: %clang -### -fcx-fortran-rules -ffp-model=precise -c %s 2>&1 \217// RUN:   | FileCheck --check-prefixes=MODEL-PRECISE-OVERRIDING,FORT-OVERRIDDEN %s218 219// RUN: %clang -### -fcx-fortran-rules -ffp-model=fast -c %s 2>&1 \220// RUN:   | FileCheck --check-prefixes=MODEL-FAST-OVERRIDING,FORT-OVERRIDDEN %s221 222// RUN: %clang -### -fcx-fortran-rules -ffp-model=aggressive -c %s 2>&1 \223// RUN:   | FileCheck --check-prefixes=MODEL-AGGRESSIVE-OVERRIDING,FORT-OVERRIDDEN %s224 225// RUN: %clang -### -fno-cx-fortran-rules -ffast-math -c %s 2>&1 \226// RUN:   | FileCheck --check-prefixes=FAST-OVERRIDING,NOFORT-OVERRIDDEN %s227 228// RUN: %clang -### -Werror -fno-cx-fortran-rules -fno-fast-math -c %s 2>&1 \229// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s230 231// RUN: %clang -### -fno-cx-fortran-rules -fcx-limited-range -c %s 2>&1 \232// RUN:   | FileCheck --check-prefixes=LIM-OVERRIDING,NOFORT-OVERRIDDEN %s233 234// RUN: %clang -### -Werror -fno-cx-fortran-rules -fno-cx-limited-range -c %s 2>&1 \235// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s236 237// RUN: %clang -### -Werror -fno-cx-fortran-rules -fcx-fortran-rules -c %s 2>&1 \238// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s239 240// RUN: %clang -### -Werror -fno-cx-fortran-rules -fcomplex-arithmetic=full -c %s 2>&1 \241// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s242 243// RUN: %clang -### -fno-cx-fortran-rules -fcomplex-arithmetic=improved -c %s 2>&1 \244// RUN:   | FileCheck --check-prefixes=ARITH-IMPROVED-OVERRIDING,NOFORT-OVERRIDDEN %s245 246// RUN: %clang -### -fno-cx-fortran-rules -fcomplex-arithmetic=promoted -c %s 2>&1 \247// RUN:   | FileCheck --check-prefixes=ARITH-PROMOTED-OVERRIDING,NOFORT-OVERRIDDEN %s248 249// RUN: %clang -### -fno-cx-fortran-rules -fcomplex-arithmetic=basic -c %s 2>&1 \250// RUN:   | FileCheck --check-prefixes=ARITH-BASIC-OVERRIDING,NOFORT-OVERRIDDEN %s251 252// RUN: %clang -### -Werror -fno-cx-fortran-rules -ffp-model=strict -c %s 2>&1 \253// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s254 255// RUN: %clang -### -Werror -fno-cx-fortran-rules -ffp-model=precise -c %s 2>&1 \256// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s257 258// RUN: %clang -### -fno-cx-fortran-rules -ffp-model=fast -c %s 2>&1 \259// RUN:   | FileCheck --check-prefixes=MODEL-FAST-OVERRIDING,NOFORT-OVERRIDDEN %s260 261// RUN: %clang -### -fno-cx-fortran-rules -ffp-model=aggressive -c %s 2>&1 \262// RUN:   | FileCheck --check-prefixes=MODEL-AGGRESSIVE-OVERRIDING,NOFORT-OVERRIDDEN %s263 264// RUN: %clang -### -fcomplex-arithmetic=full -ffast-math -c %s 2>&1 \265// RUN:   | FileCheck --check-prefixes=FAST-OVERRIDING,ARITH-FULL-OVERRIDDEN %s266 267// RUN: %clang -### -Werror -fcomplex-arithmetic=full -fno-fast-math -c %s 2>&1 \268// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s269 270// RUN: %clang -### -fcomplex-arithmetic=full -fcx-limited-range -c %s 2>&1 \271// RUN:   | FileCheck --check-prefixes=LIM-OVERRIDING,ARITH-FULL-OVERRIDDEN %s272 273// RUN: %clang -### -Werror -fcomplex-arithmetic=full -fno-cx-limited-range -c %s 2>&1 \274// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s275 276// RUN: %clang -### -fcomplex-arithmetic=full -fcx-fortran-rules -c %s 2>&1 \277// RUN:   | FileCheck --check-prefixes=FORT-OVERRIDING,ARITH-FULL-OVERRIDDEN %s278 279// RUN: %clang -### -Werror -fcomplex-arithmetic=full -fno-cx-fortran-rules -c %s 2>&1 \280// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s281 282// RUN: %clang -### -Werror -fcomplex-arithmetic=full -fcomplex-arithmetic=improved -c %s 2>&1 \283// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s284 285// RUN: %clang -### -Werror -fcomplex-arithmetic=full -fcomplex-arithmetic=promoted -c %s 2>&1 \286// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s287 288// RUN: %clang -### -Werror -fcomplex-arithmetic=full -fcomplex-arithmetic=basic -c %s 2>&1 \289// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s290 291// RUN: %clang -### -Werror -fcomplex-arithmetic=full -ffp-model=strict -c %s 2>&1 \292// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s293 294// RUN: %clang -### -Werror -fcomplex-arithmetic=full -ffp-model=precise -c %s 2>&1 \295// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s296 297// RUN: %clang -### -fcomplex-arithmetic=full -ffp-model=fast -c %s 2>&1 \298// RUN:   | FileCheck --check-prefixes=MODEL-FAST-OVERRIDING,ARITH-FULL-OVERRIDDEN %s299 300// RUN: %clang -### -fcomplex-arithmetic=full -ffp-model=aggressive -c %s 2>&1 \301// RUN:   | FileCheck --check-prefixes=MODEL-AGGRESSIVE-OVERRIDING,ARITH-FULL-OVERRIDDEN %s302 303// RUN: %clang -### -fcomplex-arithmetic=improved -ffast-math -c %s 2>&1 \304// RUN:   | FileCheck --check-prefixes=FAST-OVERRIDING,ARITH-IMPROVED-OVERRIDDEN %s305 306// RUN: %clang -### -fcomplex-arithmetic=improved -fno-fast-math -c %s 2>&1 \307// RUN:   | FileCheck --check-prefixes=NOFAST-OVERRIDING,ARITH-IMPROVED-OVERRIDDEN %s308 309// RUN: %clang -### -fcomplex-arithmetic=improved -fcx-limited-range -c %s 2>&1 \310// RUN:   | FileCheck --check-prefixes=LIM-OVERRIDING,ARITH-IMPROVED-OVERRIDDEN %s311 312// RUN: %clang -### -fcomplex-arithmetic=improved -fno-cx-limited-range -c %s 2>&1 \313// RUN:   | FileCheck --check-prefixes=NOLIM-OVERRIDING,ARITH-IMPROVED-OVERRIDDEN %s314 315// RUN: %clang -### -Werror -fcomplex-arithmetic=improved -fcx-fortran-rules -c %s 2>&1 \316// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s317 318// RUN: %clang -### -fcomplex-arithmetic=improved -fno-cx-fortran-rules -c %s 2>&1 \319// RUN:   | FileCheck --check-prefixes=NOFORT-OVERRIDING,ARITH-IMPROVED-OVERRIDDEN %s320 321// RUN: %clang -### -Werror -fcomplex-arithmetic=improved -fcomplex-arithmetic=full -c %s 2>&1 \322// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s323 324// RUN: %clang -### -Werror -fcomplex-arithmetic=improved -fcomplex-arithmetic=promoted -c %s 2>&1 \325// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s326 327// RUN: %clang -### -Werror -fcomplex-arithmetic=improved -fcomplex-arithmetic=basic -c %s 2>&1 \328// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s329 330// RUN: %clang -### -fcomplex-arithmetic=improved -ffp-model=strict -c %s 2>&1 \331// RUN:   | FileCheck --check-prefixes=MODEL-STRICT-OVERRIDING,ARITH-IMPROVED-OVERRIDDEN %s332 333// RUN: %clang -### -fcomplex-arithmetic=improved -ffp-model=precise -c %s 2>&1 \334// RUN:   | FileCheck --check-prefixes=MODEL-PRECISE-OVERRIDING,ARITH-IMPROVED-OVERRIDDEN %s335 336// RUN: %clang -### -fcomplex-arithmetic=improved -ffp-model=fast -c %s 2>&1 \337// RUN:   | FileCheck --check-prefixes=MODEL-FAST-OVERRIDING,ARITH-IMPROVED-OVERRIDDEN %s338 339// RUN: %clang -### -fcomplex-arithmetic=improved -ffp-model=aggressive -c %s 2>&1 \340// RUN:   | FileCheck --check-prefixes=MODEL-AGGRESSIVE-OVERRIDING,ARITH-IMPROVED-OVERRIDDEN %s341 342// RUN: %clang -### -fcomplex-arithmetic=promoted -ffast-math -c %s 2>&1 \343// RUN:   | FileCheck --check-prefixes=FAST-OVERRIDING,ARITH-PROMOTED-OVERRIDDEN %s344 345// RUN: %clang -### -fcomplex-arithmetic=promoted -fno-fast-math -c %s 2>&1 \346// RUN:   | FileCheck --check-prefixes=NOFAST-OVERRIDING,ARITH-PROMOTED-OVERRIDDEN %s347 348// RUN: %clang -### -fcomplex-arithmetic=promoted -fcx-limited-range -c %s 2>&1 \349// RUN:   | FileCheck --check-prefixes=LIM-OVERRIDING,ARITH-PROMOTED-OVERRIDDEN %s350 351// RUN: %clang -### -fcomplex-arithmetic=promoted -fno-cx-limited-range -c %s 2>&1 \352// RUN:   | FileCheck --check-prefixes=NOLIM-OVERRIDING,ARITH-PROMOTED-OVERRIDDEN %s353 354// RUN: %clang -### -fcomplex-arithmetic=promoted -fcx-fortran-rules -c %s 2>&1 \355// RUN:   | FileCheck --check-prefixes=FORT-OVERRIDING,ARITH-PROMOTED-OVERRIDDEN %s356 357// RUN: %clang -### -fcomplex-arithmetic=promoted -fno-cx-fortran-rules -c %s 2>&1 \358// RUN:   | FileCheck --check-prefixes=NOFORT-OVERRIDING,ARITH-PROMOTED-OVERRIDDEN %s359 360// RUN: %clang -### -Werror -fcomplex-arithmetic=promoted -fcomplex-arithmetic=full -c %s 2>&1 \361// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s362 363// RUN: %clang -### -Werror -fcomplex-arithmetic=promoted -fcomplex-arithmetic=improved -c %s 2>&1 \364// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s365 366// RUN: %clang -### -Werror -fcomplex-arithmetic=promoted -fcomplex-arithmetic=basic -c %s 2>&1 \367// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s368 369// RUN: %clang -### -fcomplex-arithmetic=promoted -ffp-model=strict -c %s 2>&1 \370// RUN:   | FileCheck --check-prefixes=MODEL-STRICT-OVERRIDING,ARITH-PROMOTED-OVERRIDDEN %s371 372// RUN: %clang -### -fcomplex-arithmetic=promoted -ffp-model=precise -c %s 2>&1 \373// RUN:   | FileCheck --check-prefixes=MODEL-PRECISE-OVERRIDING,ARITH-PROMOTED-OVERRIDDEN %s374 375// RUN: %clang -### -Werror -fcomplex-arithmetic=promoted -ffp-model=fast -c %s 2>&1 \376// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s377 378// RUN: %clang -### -fcomplex-arithmetic=promoted -ffp-model=aggressive -c %s 2>&1 \379// RUN:   | FileCheck --check-prefixes=MODEL-AGGRESSIVE-OVERRIDING,ARITH-PROMOTED-OVERRIDDEN %s380 381// RUN: %clang -### -Werror -fcomplex-arithmetic=basic -ffast-math -c %s 2>&1 \382// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s383 384// RUN: %clang -### -fcomplex-arithmetic=basic -fno-fast-math -c %s 2>&1 \385// RUN:   | FileCheck --check-prefixes=NOFAST-OVERRIDING,ARITH-BASIC-OVERRIDDEN %s386 387// RUN: %clang -### -Werror -fcomplex-arithmetic=basic -fcx-limited-range -c %s 2>&1 \388// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s389 390// RUN: %clang -### -fcomplex-arithmetic=basic -fno-cx-limited-range -c %s 2>&1 \391// RUN:   | FileCheck --check-prefixes=NOLIM-OVERRIDING,ARITH-BASIC-OVERRIDDEN %s392 393// RUN: %clang -### -fcomplex-arithmetic=basic -fcx-fortran-rules -c %s 2>&1 \394// RUN:   | FileCheck --check-prefixes=FORT-OVERRIDING,ARITH-BASIC-OVERRIDDEN %s395 396// RUN: %clang -### -fcomplex-arithmetic=basic -fno-cx-fortran-rules -c %s 2>&1 \397// RUN:   | FileCheck --check-prefixes=NOFORT-OVERRIDING,ARITH-BASIC-OVERRIDDEN %s398 399// RUN: %clang -### -Werror -fcomplex-arithmetic=basic -fcomplex-arithmetic=full -c %s 2>&1 \400// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s401 402// RUN: %clang -### -Werror -fcomplex-arithmetic=basic -fcomplex-arithmetic=improved -c %s 2>&1 \403// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s404 405// RUN: %clang -### -Werror -fcomplex-arithmetic=basic -fcomplex-arithmetic=promoted -c %s 2>&1 \406// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s407 408// RUN: %clang -### -fcomplex-arithmetic=basic -ffp-model=strict -c %s 2>&1 \409// RUN:   | FileCheck --check-prefixes=MODEL-STRICT-OVERRIDING,ARITH-BASIC-OVERRIDDEN %s410 411// RUN: %clang -### -fcomplex-arithmetic=basic -ffp-model=precise -c %s 2>&1 \412// RUN:   | FileCheck --check-prefixes=MODEL-PRECISE-OVERRIDING,ARITH-BASIC-OVERRIDDEN %s413 414// RUN: %clang -### -fcomplex-arithmetic=basic -ffp-model=fast -c %s 2>&1 \415// RUN:   | FileCheck --check-prefixes=MODEL-FAST-OVERRIDING,ARITH-BASIC-OVERRIDDEN %s416 417// RUN: %clang -### -Werror -fcomplex-arithmetic=basic -ffp-model=aggressive -c %s 2>&1 \418// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s419 420// RUN: %clang -### -ffp-model=strict -ffast-math -c %s 2>&1 \421// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s422 423// RUN: %clang -### -Werror -ffp-model=strict -fno-fast-math -c %s 2>&1 \424// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s425 426// RUN: %clang -### -ffp-model=strict -fcx-limited-range -c %s 2>&1 \427// RUN:   | FileCheck --check-prefixes=LIM-OVERRIDING,MODEL-STRICT-OVERRIDDEN %s428 429// RUN: %clang -### -Werror -ffp-model=strict -fno-cx-limited-range -c %s 2>&1 \430// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s431 432// RUN: %clang -### -ffp-model=strict -fcx-fortran-rules -c %s 2>&1 \433// RUN:   | FileCheck --check-prefixes=FORT-OVERRIDING,MODEL-STRICT-OVERRIDDEN %s434 435// RUN: %clang -### -Werror -ffp-model=strict -fno-cx-fortran-rules -c %s 2>&1 \436// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s437 438// RUN: %clang -### -Werror -ffp-model=strict -fcomplex-arithmetic=full -c %s 2>&1 \439// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s440 441// RUN: %clang -### -ffp-model=strict -fcomplex-arithmetic=improved -c %s 2>&1 \442// RUN:   | FileCheck --check-prefixes=ARITH-IMPROVED-OVERRIDING,MODEL-STRICT-OVERRIDDEN %s443 444// RUN: %clang -### -ffp-model=strict -fcomplex-arithmetic=promoted -c %s 2>&1 \445// RUN:   | FileCheck --check-prefixes=ARITH-PROMOTED-OVERRIDING,MODEL-STRICT-OVERRIDDEN %s446 447// RUN: %clang -### -ffp-model=strict -fcomplex-arithmetic=basic -c %s 2>&1 \448// RUN:   | FileCheck --check-prefixes=ARITH-BASIC-OVERRIDING,MODEL-STRICT-OVERRIDDEN %s449 450// RUN: %clang -### -ffp-model=strict -ffp-model=precise -c %s 2>&1 \451// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s452 453// RUN: %clang -### -ffp-model=strict -ffp-model=fast -c %s 2>&1 \454// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s455 456// RUN: %clang -### -ffp-model=strict -ffp-model=aggressive -c %s 2>&1 \457// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s458 459// RUN: %clang -### -Werror -ffp-model=precise -ffast-math -c %s 2>&1 \460// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s461 462// RUN: %clang -### -Werror -ffp-model=precise -fno-fast-math -c %s 2>&1 \463// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s464 465// RUN: %clang -### -ffp-model=precise -fcx-limited-range -c %s 2>&1 \466// RUN:   | FileCheck --check-prefixes=LIM-OVERRIDING,MODEL-PRECISE-OVERRIDDEN %s467 468// RUN: %clang -### -Werror -ffp-model=precise -fno-cx-limited-range -c %s 2>&1 \469// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s470 471// RUN: %clang -### -ffp-model=precise -fcx-fortran-rules -c %s 2>&1 \472// RUN:   | FileCheck --check-prefixes=FORT-OVERRIDING,MODEL-PRECISE-OVERRIDDEN %s473 474// RUN: %clang -### -Werror -ffp-model=precise -fno-cx-fortran-rules -c %s 2>&1 \475// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s476 477// RUN: %clang -### -Werror -ffp-model=precise -fcomplex-arithmetic=full -c %s 2>&1 \478// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s479 480// RUN: %clang -### -ffp-model=precise -fcomplex-arithmetic=improved -c %s 2>&1 \481// RUN:   | FileCheck --check-prefixes=ARITH-IMPROVED-OVERRIDING,MODEL-PRECISE-OVERRIDDEN %s482 483// RUN: %clang -### -ffp-model=precise -fcomplex-arithmetic=promoted -c %s 2>&1 \484// RUN:   | FileCheck --check-prefixes=ARITH-PROMOTED-OVERRIDING,MODEL-PRECISE-OVERRIDDEN %s485 486// RUN: %clang -### -ffp-model=precise -fcomplex-arithmetic=basic -c %s 2>&1 \487// RUN:   | FileCheck --check-prefixes=ARITH-BASIC-OVERRIDING,MODEL-PRECISE-OVERRIDDEN %s488 489// RUN: %clang -### -ffp-model=precise -ffp-model=strict -c %s 2>&1 \490// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s491 492// RUN: %clang -### -ffp-model=precise -ffp-model=fast -c %s 2>&1 \493// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s494 495// RUN: %clang -### -ffp-model=precise -ffp-model=aggressive -c %s 2>&1 \496// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s497 498// RUN: %clang -### -Werror -ffp-model=fast -ffast-math -c %s 2>&1 \499// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s500 501// RUN: %clang -### -Werror -ffp-model=fast -fno-fast-math -c %s 2>&1 \502// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s503 504// RUN: %clang -### -ffp-model=fast -fcx-limited-range -c %s 2>&1 \505// RUN:   | FileCheck --check-prefixes=LIM-OVERRIDING,MODEL-FAST-OVERRIDDEN %s506 507// RUN: %clang -### -ffp-model=fast -fno-cx-limited-range -c %s 2>&1 \508// RUN:   | FileCheck --check-prefixes=NOLIM-OVERRIDING,MODEL-FAST-OVERRIDDEN %s509 510// RUN: %clang -### -ffp-model=fast -fcx-fortran-rules -c %s 2>&1 \511// RUN:   | FileCheck --check-prefixes=FORT-OVERRIDING,MODEL-FAST-OVERRIDDEN %s512 513// RUN: %clang -### -ffp-model=fast -fno-cx-fortran-rules -c %s 2>&1 \514// RUN:   | FileCheck --check-prefixes=NOFORT-OVERRIDING,MODEL-FAST-OVERRIDDEN %s515 516// RUN: %clang -### -ffp-model=fast -fcomplex-arithmetic=full -c %s 2>&1 \517// RUN:   | FileCheck --check-prefixes=ARITH-FULL-OVERRIDING,MODEL-FAST-OVERRIDDEN %s518 519// RUN: %clang -### -ffp-model=fast -fcomplex-arithmetic=improved -c %s 2>&1 \520// RUN:   | FileCheck --check-prefixes=ARITH-IMPROVED-OVERRIDING,MODEL-FAST-OVERRIDDEN %s521 522// RUN: %clang -### -Werror -ffp-model=fast -fcomplex-arithmetic=promoted -c %s 2>&1 \523// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s524 525// RUN: %clang -### -ffp-model=fast -fcomplex-arithmetic=basic -c %s 2>&1 \526// RUN:   | FileCheck --check-prefixes=ARITH-BASIC-OVERRIDING,MODEL-FAST-OVERRIDDEN %s527 528// RUN: %clang -### -ffp-model=fast -ffp-model=strict -c %s 2>&1 \529// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s530 531// RUN: %clang -### -ffp-model=fast -ffp-model=precise -c %s 2>&1 \532// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s533 534// RUN: %clang -### -ffp-model=fast -ffp-model=aggressive -c %s 2>&1 \535// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s536 537// RUN: %clang -### -Werror -ffp-model=aggressive -ffast-math -c %s 2>&1 \538// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s539 540// RUN: %clang -### -Werror -ffp-model=aggressive -fno-fast-math -c %s 2>&1 \541// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s542 543// RUN: %clang -### -Werror -ffp-model=aggressive -fcx-limited-range -c %s 2>&1 \544// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s545 546// RUN: %clang -### -ffp-model=aggressive -fno-cx-limited-range -c %s 2>&1 \547// RUN:   | FileCheck --check-prefixes=NOLIM-OVERRIDING,MODEL-AGGRESSIVE-OVERRIDDEN %s548 549// RUN: %clang -### -ffp-model=aggressive -fcx-fortran-rules -c %s 2>&1 \550// RUN:   | FileCheck --check-prefixes=FORT-OVERRIDING,MODEL-AGGRESSIVE-OVERRIDDEN %s551 552// RUN: %clang -### -ffp-model=aggressive -fno-cx-fortran-rules -c %s 2>&1 \553// RUN:   | FileCheck --check-prefixes=NOFORT-OVERRIDING,MODEL-AGGRESSIVE-OVERRIDDEN %s554 555// RUN: %clang -### -ffp-model=aggressive -fcomplex-arithmetic=full -c %s 2>&1 \556// RUN:   | FileCheck --check-prefixes=ARITH-FULL-OVERRIDING,MODEL-AGGRESSIVE-OVERRIDDEN %s557 558// RUN: %clang -### -ffp-model=aggressive -fcomplex-arithmetic=improved -c %s 2>&1 \559// RUN:   | FileCheck --check-prefixes=ARITH-IMPROVED-OVERRIDING,MODEL-AGGRESSIVE-OVERRIDDEN %s560 561// RUN: %clang -### -ffp-model=aggressive -fcomplex-arithmetic=promoted -c %s 2>&1 \562// RUN:   | FileCheck --check-prefixes=ARITH-PROMOTED-OVERRIDING,MODEL-AGGRESSIVE-OVERRIDDEN %s563 564// RUN: %clang -### -Werror -ffp-model=aggressive -fcomplex-arithmetic=basic -c %s 2>&1 \565// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s566 567// RUN: %clang -### -ffp-model=aggressive -ffp-model=strict -c %s 2>&1 \568// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s569 570// RUN: %clang -### -ffp-model=aggressive -ffp-model=precise -c %s 2>&1 \571// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s572 573// RUN: %clang -### -ffp-model=aggressive -ffp-model=fast -c %s 2>&1 \574// RUN:   | FileCheck --check-prefixes=NO-OVR-WARN %s575 576 577// NO-OVR-WARN-NOT: [-Woverriding-complex-range]578 579// FAST-OVERRIDING: warning: '-ffast-math' sets complex range to "basic"580// NOFAST-OVERRIDING: warning: '-fno-fast-math' sets complex range to "none"581// LIM-OVERRIDING: warning: '-fcx-limited-range' sets complex range to "basic"582// NOLIM-OVERRIDING: warning: '-fno-cx-limited-range' sets complex range to "full"583// FORT-OVERRIDING: warning: '-fcx-fortran-rules' sets complex range to "improved"584// NOFORT-OVERRIDING: warning: '-fno-cx-fortran-rules' sets complex range to "full"585// ARITH-FULL-OVERRIDING: warning: '-fcomplex-arithmetic=full' sets complex range to "full"586// ARITH-IMPROVED-OVERRIDING: warning: '-fcomplex-arithmetic=improved' sets complex range to "improved"587// ARITH-PROMOTED-OVERRIDING: warning: '-fcomplex-arithmetic=promoted' sets complex range to "promoted"588// ARITH-BASIC-OVERRIDING: warning: '-fcomplex-arithmetic=basic' sets complex range to "basic"589// MODEL-STRICT-OVERRIDING: warning: '-ffp-model=strict' sets complex range to "full"590// MODEL-PRECISE-OVERRIDING: warning: '-ffp-model=precise' sets complex range to "full"591// MODEL-FAST-OVERRIDING: warning: '-ffp-model=fast' sets complex range to "promoted"592// MODEL-AGGRESSIVE-OVERRIDING: warning: '-ffp-model=aggressive' sets complex range to "basic"593 594// FAST-OVERRIDDEN: overriding the setting of "basic" that was implied by '-ffast-math' [-Woverriding-complex-range]595// LIM-OVERRIDDEN: overriding the setting of "basic" that was implied by '-fcx-limited-range' [-Woverriding-complex-range]596// NOLIM-OVERRIDDEN: overriding the setting of "full" that was implied by '-fno-cx-limited-range' [-Woverriding-complex-range]597// FORT-OVERRIDDEN: overriding the setting of "improved" that was implied by '-fcx-fortran-rules' [-Woverriding-complex-range]598// NOFORT-OVERRIDDEN: overriding the setting of "full" that was implied by '-fno-cx-fortran-rules' [-Woverriding-complex-range]599// ARITH-FULL-OVERRIDDEN: overriding the setting of "full" that was implied by '-fcomplex-arithmetic=full' [-Woverriding-complex-range]600// ARITH-IMPROVED-OVERRIDDEN: overriding the setting of "improved" that was implied by '-fcomplex-arithmetic=improved' [-Woverriding-complex-range]601// ARITH-PROMOTED-OVERRIDDEN: overriding the setting of "promoted" that was implied by '-fcomplex-arithmetic=promoted' [-Woverriding-complex-range]602// ARITH-BASIC-OVERRIDDEN: overriding the setting of "basic" that was implied by '-fcomplex-arithmetic=basic' [-Woverriding-complex-range]603// MODEL-STRICT-OVERRIDDEN: overriding the setting of "full" that was implied by '-ffp-model=strict' [-Woverriding-complex-range]604// MODEL-PRECISE-OVERRIDDEN: overriding the setting of "full" that was implied by '-ffp-model=precise' [-Woverriding-complex-range]605// MODEL-FAST-OVERRIDDEN: overriding the setting of "promoted" that was implied by '-ffp-model=fast' [-Woverriding-complex-range]606// MODEL-AGGRESSIVE-OVERRIDDEN: overriding the setting of "basic" that was implied by '-ffp-model=aggressive' [-Woverriding-complex-range]607