xref: /llvm-project/clang/test/Driver/range.c (revision d9c4c312d81b4a2059d0ca2bb454c3452e52042e)
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