1b40c5346SZahira Ammarguellat // Test range options for complex multiplication and division. 2b40c5346SZahira Ammarguellat 3b40c5346SZahira Ammarguellat // RUN: %clang -### -target x86_64 -fcx-limited-range -c %s 2>&1 \ 4*d9c4c312SZahira Ammarguellat // RUN: | FileCheck --check-prefix=BASIC %s 5b40c5346SZahira Ammarguellat 6b40c5346SZahira Ammarguellat // RUN: %clang -### -target x86_64 -fno-cx-limited-range -c %s 2>&1 \ 7*d9c4c312SZahira Ammarguellat // RUN: | FileCheck --check-prefix=FULL %s 8*d9c4c312SZahira Ammarguellat 9*d9c4c312SZahira Ammarguellat // RUN: %clang -### -target x86_64 -fcx-limited-range -fcx-fortran-rules \ 10*d9c4c312SZahira Ammarguellat // RUN: -c %s 2>&1 | FileCheck --check-prefix=WARN1 %s 11*d9c4c312SZahira Ammarguellat 12*d9c4c312SZahira Ammarguellat // RUN: %clang -### -target x86_64 -fno-cx-limited-range -fcx-fortran-rules \ 13*d9c4c312SZahira Ammarguellat // RUN: -c %s 2>&1 | FileCheck --check-prefix=WARN2 %s 14b40c5346SZahira Ammarguellat 15364a5b5bSZahira Ammarguellat // RUN: %clang -### -target x86_64 -fcx-limited-range -fno-cx-limited-range \ 16364a5b5bSZahira Ammarguellat // RUN: -c %s 2>&1 | FileCheck --check-prefix=FULL %s 17364a5b5bSZahira Ammarguellat 18*d9c4c312SZahira Ammarguellat // RUN: %clang -### -target x86_64 -fno-cx-limited-range -fcx-limited-range \ 19*d9c4c312SZahira Ammarguellat // RUN: -c %s 2>&1 | FileCheck --check-prefix=BASIC %s 20*d9c4c312SZahira Ammarguellat 21*d9c4c312SZahira Ammarguellat // RUN: %clang -### -target x86_64 -fno-cx-limited-range -fno-cx-fortran-rules \ 22*d9c4c312SZahira Ammarguellat // RUN: -c %s 2>&1 | FileCheck --check-prefix=FULL %s 23*d9c4c312SZahira Ammarguellat 24*d9c4c312SZahira Ammarguellat // RUN: %clang -### -target x86_64 -fno-cx-fortran-rules -fno-cx-limited-range \ 25*d9c4c312SZahira Ammarguellat // RUN: -c %s 2>&1 | FileCheck --check-prefix=FULL %s 26*d9c4c312SZahira Ammarguellat 27*d9c4c312SZahira Ammarguellat // RUN: %clang -### -target x86_64 -fcx-limited-range -fno-cx-fortran-rules \ 28*d9c4c312SZahira Ammarguellat // RUN: -c %s 2>&1 | FileCheck --check-prefix=WARN4 %s 29*d9c4c312SZahira Ammarguellat 30b40c5346SZahira Ammarguellat // RUN: %clang -### -target x86_64 -fcx-fortran-rules -c %s 2>&1 \ 31*d9c4c312SZahira Ammarguellat // RUN: | FileCheck --check-prefix=IMPRVD %s 32*d9c4c312SZahira Ammarguellat 33*d9c4c312SZahira Ammarguellat // RUN: %clang -### -target x86_64 -fno-cx-fortran-rules -c %s 2>&1 \ 34*d9c4c312SZahira Ammarguellat // RUN: | FileCheck --check-prefix=FULL %s 35b40c5346SZahira Ammarguellat 360b2c24e0SZahira Ammarguellat // RUN: %clang -### -target x86_64 -fcx-fortran-rules -c %s 2>&1 \ 370b2c24e0SZahira Ammarguellat // RUN: -fno-cx-fortran-rules | FileCheck --check-prefix=FULL %s 380b2c24e0SZahira Ammarguellat 390b2c24e0SZahira Ammarguellat // RUN: %clang -### -target x86_64 -fcx-fortran-rules -fno-cx-limited-range \ 400b2c24e0SZahira Ammarguellat // RUN: -c %s 2>&1 | FileCheck --check-prefix=WARN3 %s 410b2c24e0SZahira Ammarguellat 42b40c5346SZahira Ammarguellat // RUN: %clang -### -target x86_64 -fno-cx-fortran-rules -c %s 2>&1 \ 43b40c5346SZahira Ammarguellat // RUN: | FileCheck %s 44b40c5346SZahira Ammarguellat 450b2c24e0SZahira Ammarguellat // RUN: %clang -### -target x86_64 -fcx-limited-range -fcx-fortran-rules \ 460b2c24e0SZahira Ammarguellat // RUN: -c %s 2>&1 | FileCheck --check-prefix=WARN1 %s 470b2c24e0SZahira Ammarguellat 480b2c24e0SZahira Ammarguellat // RUN: %clang -### -target x86_64 -fcx-limited-range -fno-cx-fortran-rules \ 490b2c24e0SZahira Ammarguellat // RUN: -c %s 2>&1 | FileCheck --check-prefix=WARN4 %s 500b2c24e0SZahira Ammarguellat 510b2c24e0SZahira Ammarguellat // RUN: %clang -### -target x86_64 -fcx-limited-range -fno-cx-limited-range \ 520b2c24e0SZahira Ammarguellat // RUN: -c %s 2>&1 | FileCheck --check-prefix=FULL %s 53b40c5346SZahira Ammarguellat 54b40c5346SZahira Ammarguellat // RUN: %clang -### -target x86_64 -fcx-fortran-rules \ 55b40c5346SZahira Ammarguellat // RUN: -fcx-limited-range -c %s 2>&1 \ 56*d9c4c312SZahira Ammarguellat // RUN: | FileCheck --check-prefix=WARN20 %s 57b40c5346SZahira Ammarguellat 58b40c5346SZahira Ammarguellat // RUN: %clang -### -target x86_64 -ffast-math -c %s 2>&1 \ 59*d9c4c312SZahira Ammarguellat // RUN: | FileCheck --check-prefix=BASIC %s 60b40c5346SZahira Ammarguellat 61b40c5346SZahira Ammarguellat // RUN: %clang -### -target x86_64 -ffast-math -fcx-limited-range -c %s 2>&1 \ 62*d9c4c312SZahira Ammarguellat // RUN: | FileCheck --check-prefix=BASIC %s 63b40c5346SZahira Ammarguellat 64b40c5346SZahira Ammarguellat // RUN: %clang -### -target x86_64 -fcx-limited-range -ffast-math -c %s 2>&1 \ 65*d9c4c312SZahira Ammarguellat // RUN: | FileCheck --check-prefix=BASIC %s 66b40c5346SZahira Ammarguellat 670b2c24e0SZahira Ammarguellat // RUN: %clang -### -target x86_64 -ffast-math -fno-cx-limited-range \ 680b2c24e0SZahira Ammarguellat // RUN: -c %s 2>&1 | FileCheck --check-prefix=FULL %s 69364a5b5bSZahira Ammarguellat 70*d9c4c312SZahira Ammarguellat // RUN: not %clang -### -target x86_64 -fcomplex-arithmetic=foo -c %s 2>&1 \ 71*d9c4c312SZahira Ammarguellat // RUN: | FileCheck --check-prefix=ERR %s 72*d9c4c312SZahira Ammarguellat 73*d9c4c312SZahira Ammarguellat // RUN: %clang -### -target x86_64 -fcomplex-arithmetic=basic -c %s 2>&1 \ 74*d9c4c312SZahira Ammarguellat // RUN: | FileCheck --check-prefix=BASIC %s 75*d9c4c312SZahira Ammarguellat 76*d9c4c312SZahira Ammarguellat // RUN: %clang -### -target x86_64 -fcomplex-arithmetic=improved -c %s 2>&1 \ 77*d9c4c312SZahira Ammarguellat // RUN: | FileCheck --check-prefix=IMPRVD %s 78*d9c4c312SZahira Ammarguellat 79*d9c4c312SZahira Ammarguellat // RUN: %clang -### -target x86_64 -fcomplex-arithmetic=promoted -c %s 2>&1 \ 80*d9c4c312SZahira Ammarguellat // RUN: | FileCheck --check-prefix=PRMTD %s 81*d9c4c312SZahira Ammarguellat 82*d9c4c312SZahira Ammarguellat // RUN: %clang -### -target x86_64 -fcomplex-arithmetic=full -c %s 2>&1 \ 83*d9c4c312SZahira Ammarguellat // RUN: | FileCheck --check-prefix=FULL %s 84*d9c4c312SZahira Ammarguellat 85*d9c4c312SZahira Ammarguellat // RUN: %clang -### -target x86_64 -fcomplex-arithmetic=basic \ 86*d9c4c312SZahira Ammarguellat // RUN: -fcx-limited-range -c %s 2>&1 \ 87*d9c4c312SZahira Ammarguellat // RUN: | FileCheck --check-prefix=BASIC %s 88*d9c4c312SZahira Ammarguellat 89*d9c4c312SZahira Ammarguellat // RUN: %clang -### -target x86_64 -fcomplex-arithmetic=basic \ 90*d9c4c312SZahira Ammarguellat // RUN: -fcomplex-arithmetic=improved -c %s 2>&1 \ 91*d9c4c312SZahira Ammarguellat // RUN: | FileCheck --check-prefix=IMPRVD %s 92*d9c4c312SZahira Ammarguellat 93*d9c4c312SZahira Ammarguellat // RUN: %clang -### -target x86_64 -fcx-limited-range \ 94*d9c4c312SZahira Ammarguellat // RUN: -fcomplex-arithmetic=improved -c %s 2>&1 \ 95*d9c4c312SZahira Ammarguellat // RUN: | FileCheck --check-prefix=WARN6 %s 96*d9c4c312SZahira Ammarguellat 97*d9c4c312SZahira Ammarguellat // RUN: %clang -### -target x86_64 -fcx-fortran-rules \ 98*d9c4c312SZahira Ammarguellat // RUN: -fcomplex-arithmetic=basic -c %s 2>&1 \ 99*d9c4c312SZahira Ammarguellat // RUN: | FileCheck --check-prefix=WARN7 %s 100*d9c4c312SZahira Ammarguellat 101*d9c4c312SZahira Ammarguellat // RUN: %clang -### -target x86_64 -fcomplex-arithmetic=basic \ 102*d9c4c312SZahira Ammarguellat // RUN: -fcomplex-arithmetic=full -c %s 2>&1 \ 103*d9c4c312SZahira Ammarguellat // RUN: | FileCheck --check-prefix=FULL %s 104*d9c4c312SZahira Ammarguellat 105*d9c4c312SZahira Ammarguellat // RUN: %clang -### -target x86_64 -fcomplex-arithmetic=basic \ 106*d9c4c312SZahira Ammarguellat // RUN: -fcomplex-arithmetic=promoted -c %s 2>&1 \ 107*d9c4c312SZahira Ammarguellat // RUN: | FileCheck --check-prefix=PRMTD %s 108*d9c4c312SZahira Ammarguellat 109*d9c4c312SZahira Ammarguellat // RUN: %clang -### -target x86_64 -fcomplex-arithmetic=improved \ 110*d9c4c312SZahira Ammarguellat // RUN: -fcomplex-arithmetic=basic -c %s 2>&1 \ 111*d9c4c312SZahira Ammarguellat // RUN: | FileCheck --check-prefix=BASIC %s 112*d9c4c312SZahira Ammarguellat 113*d9c4c312SZahira Ammarguellat // RUN: %clang -### -target x86_64 -fcomplex-arithmetic=improved \ 114*d9c4c312SZahira Ammarguellat // RUN: -fcomplex-arithmetic=full -c %s 2>&1 \ 115*d9c4c312SZahira Ammarguellat // RUN: | FileCheck --check-prefix=FULL %s 116*d9c4c312SZahira Ammarguellat 117*d9c4c312SZahira Ammarguellat // RUN: %clang -### -target x86_64 -fcomplex-arithmetic=improved \ 118*d9c4c312SZahira Ammarguellat // RUN: -fcomplex-arithmetic=promoted -c %s 2>&1 \ 119*d9c4c312SZahira Ammarguellat // RUN: | FileCheck --check-prefix=PRMTD %s 120*d9c4c312SZahira Ammarguellat 121*d9c4c312SZahira Ammarguellat 122*d9c4c312SZahira Ammarguellat // RUN: %clang -### -target x86_64 -fcomplex-arithmetic=promoted \ 123*d9c4c312SZahira Ammarguellat // RUN: -fcomplex-arithmetic=basic -c %s 2>&1 \ 124*d9c4c312SZahira Ammarguellat // RUN: | FileCheck --check-prefix=BASIC %s 125*d9c4c312SZahira Ammarguellat 126*d9c4c312SZahira Ammarguellat // RUN: %clang -### -target x86_64 -fcomplex-arithmetic=promoted \ 127*d9c4c312SZahira Ammarguellat // RUN: -fcx-limited-range -c %s 2>&1 \ 128*d9c4c312SZahira Ammarguellat // RUN: | FileCheck --check-prefix=WARN14 %s 129*d9c4c312SZahira Ammarguellat 130*d9c4c312SZahira Ammarguellat // RUN: %clang -### -target x86_64 -fcomplex-arithmetic=promoted \ 131*d9c4c312SZahira Ammarguellat // RUN: -fcomplex-arithmetic=improved -c %s 2>&1 \ 132*d9c4c312SZahira Ammarguellat // RUN: | FileCheck --check-prefix=IMPRVD %s 133*d9c4c312SZahira Ammarguellat 134*d9c4c312SZahira Ammarguellat // RUN: %clang -### -target x86_64 -fcomplex-arithmetic=promoted \ 135*d9c4c312SZahira Ammarguellat // RUN: -fcomplex-arithmetic=full -c %s 2>&1 \ 136*d9c4c312SZahira Ammarguellat // RUN: | FileCheck --check-prefix=FULL %s 137*d9c4c312SZahira Ammarguellat 138*d9c4c312SZahira Ammarguellat // RUN: %clang -### -target x86_64 -fcomplex-arithmetic=full \ 139*d9c4c312SZahira Ammarguellat // RUN: -fcomplex-arithmetic=basic -c %s 2>&1 \ 140*d9c4c312SZahira Ammarguellat // RUN: | FileCheck --check-prefix=BASIC %s 141*d9c4c312SZahira Ammarguellat 142*d9c4c312SZahira Ammarguellat // RUN: %clang -### -target x86_64 -fcomplex-arithmetic=full \ 143*d9c4c312SZahira Ammarguellat // RUN: -ffast-math -c %s 2>&1 | FileCheck --check-prefix=WARN17 %s 144*d9c4c312SZahira Ammarguellat 145*d9c4c312SZahira Ammarguellat // RUN: %clang -### -target x86_64 -fcomplex-arithmetic=full \ 146*d9c4c312SZahira Ammarguellat // RUN: -fcomplex-arithmetic=improved -c %s 2>&1 \ 147*d9c4c312SZahira Ammarguellat // RUN: | FileCheck --check-prefix=IMPRVD %s 148*d9c4c312SZahira Ammarguellat 149*d9c4c312SZahira Ammarguellat // RUN: %clang -### -target x86_64 -fcomplex-arithmetic=full \ 150*d9c4c312SZahira Ammarguellat // RUN: -fcomplex-arithmetic=promoted -c %s 2>&1 \ 151*d9c4c312SZahira Ammarguellat // RUN: | FileCheck --check-prefix=PRMTD %s 152*d9c4c312SZahira Ammarguellat 153*d9c4c312SZahira Ammarguellat // RUN: %clang -### -target x86_64 -ffast-math -c %s 2>&1 \ 154*d9c4c312SZahira Ammarguellat // RUN: | FileCheck --check-prefix=BASIC %s 155*d9c4c312SZahira Ammarguellat 156*d9c4c312SZahira Ammarguellat // RUN: %clang -### -target x86_64 -ffast-math -fcx-limited-range -c %s 2>&1 \ 157*d9c4c312SZahira Ammarguellat // RUN: | FileCheck --check-prefix=BASIC %s 158*d9c4c312SZahira Ammarguellat 159*d9c4c312SZahira Ammarguellat // RUN: %clang -### -target x86_64 -fcx-limited-range -ffast-math -c %s 2>&1 \ 160*d9c4c312SZahira Ammarguellat // RUN: | FileCheck --check-prefix=BASIC %s 161*d9c4c312SZahira Ammarguellat 162*d9c4c312SZahira Ammarguellat // RUN: %clang -### -target x86_64 -ffast-math -fno-cx-limited-range -c %s \ 163*d9c4c312SZahira Ammarguellat // RUN: 2>&1 | FileCheck --check-prefix=FULL %s 164*d9c4c312SZahira Ammarguellat 165*d9c4c312SZahira Ammarguellat // RUN: %clang -### -target x86_64 -ffast-math -fcomplex-arithmetic=basic -c %s 2>&1 \ 166*d9c4c312SZahira Ammarguellat // RUN: | FileCheck --check-prefix=BASIC %s 167*d9c4c312SZahira Ammarguellat 168*d9c4c312SZahira Ammarguellat // RUN: %clang -### -target x86_64 -fcomplex-arithmetic=basic -ffast-math -c %s 2>&1 \ 169*d9c4c312SZahira Ammarguellat // RUN: | FileCheck --check-prefix=BASIC %s 170*d9c4c312SZahira Ammarguellat 171e538486eSZahira Ammarguellat // RUN: %clang -### -Werror -target x86_64 -fcx-limited-range -c %s 2>&1 \ 172*d9c4c312SZahira Ammarguellat // RUN: | FileCheck --check-prefix=BASIC %s 173e538486eSZahira Ammarguellat 174*d9c4c312SZahira Ammarguellat // RUN: %clang -### -target x86_64 -ffast-math -fcomplex-arithmetic=full -c %s 2>&1 \ 175*d9c4c312SZahira Ammarguellat // RUN: | FileCheck --check-prefix=FULL %s 176e538486eSZahira Ammarguellat 177*d9c4c312SZahira Ammarguellat // RUN: %clang -### -target x86_64 -ffast-math -fcomplex-arithmetic=basic -c %s 2>&1 \ 178*d9c4c312SZahira Ammarguellat // RUN: | FileCheck --check-prefix=BASIC %s 179*d9c4c312SZahira Ammarguellat 180*d9c4c312SZahira Ammarguellat // BASIC: -complex-range=basic 181364a5b5bSZahira Ammarguellat // FULL: -complex-range=full 182*d9c4c312SZahira Ammarguellat // PRMTD: -complex-range=promoted 183*d9c4c312SZahira Ammarguellat // BASIC-NOT: -complex-range=improved 184*d9c4c312SZahira Ammarguellat // CHECK-NOT: -complex-range=basic 185*d9c4c312SZahira Ammarguellat // IMPRVD: -complex-range=improved 186*d9c4c312SZahira Ammarguellat // IMPRVD-NOT: -complex-range=basic 187*d9c4c312SZahira Ammarguellat // CHECK-NOT: -complex-range=improved 188*d9c4c312SZahira Ammarguellat 189b40c5346SZahira Ammarguellat // WARN1: warning: overriding '-fcx-limited-range' option with '-fcx-fortran-rules' [-Woverriding-option] 190*d9c4c312SZahira Ammarguellat // WARN2: warning: overriding '-fno-cx-limited-range' option with '-fcx-fortran-rules' [-Woverriding-option] 1910b2c24e0SZahira Ammarguellat // WARN3: warning: overriding '-fcx-fortran-rules' option with '-fno-cx-limited-range' [-Woverriding-option] 1920b2c24e0SZahira Ammarguellat // WARN4: warning: overriding '-fcx-limited-range' option with '-fno-cx-fortran-rules' [-Woverriding-option] 193*d9c4c312SZahira Ammarguellat // WARN5: warning: overriding '-fcomplex-arithmetic=basic' option with '-fcomplex-arithmetic=improved' [-Woverriding-option] 194*d9c4c312SZahira Ammarguellat // WARN6: warning: overriding '-fcx-limited-range' option with '-fcomplex-arithmetic=improved' [-Woverriding-option] 195*d9c4c312SZahira Ammarguellat // WARN7: warning: overriding '-fcx-fortran-rules' option with '-fcomplex-arithmetic=basic' [-Woverriding-option] 196*d9c4c312SZahira Ammarguellat // WARN14: overriding '-complex-range=promoted' option with '-fcx-limited-range' [-Woverriding-option] 197*d9c4c312SZahira Ammarguellat // WARN17: warning: overriding '-fcomplex-arithmetic=full' option with '-fcomplex-arithmetic=basic' [-Woverriding-option] 198*d9c4c312SZahira Ammarguellat // WARN20: warning: overriding '-fcx-fortran-rules' option with '-fcx-limited-range' [-Woverriding-option] 199*d9c4c312SZahira Ammarguellat 200*d9c4c312SZahira Ammarguellat // ERR: error: unsupported argument 'foo' to option '-fcomplex-arithmetic=' 201