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