2018-11-07 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / g++.dg / cpp1z / fold6.C
blobdf290335b14387adf6dd9f6d667af8943e82664e
1 // Test that we reject a fold-expression with an LHS that is not a
2 // cast-expression.
4 // { dg-do compile { target c++17 } }
6 int i;
8 template <int... Is>
9 void f()
11   (i ? i : Is + ...);           // { dg-error "" }
12   (i + Is + ...);               // { dg-error "" }
13   (i - Is + ...);               // { dg-error "" }
14   (i * Is + ...);               // { dg-error "" }
15   (i / Is + ...);               // { dg-error "" }
16   (i % Is + ...);               // { dg-error "" }
17   (i ^ Is + ...);               // { dg-error "" }
18   (i | Is + ...);               // { dg-error "" }
19   (i & Is + ...);               // { dg-error "" }
20   (i << Is + ...);              // { dg-error "" }
21   (i >> Is + ...);              // { dg-error "" }
22   (i = Is + ...);               // { dg-error "" }
23   (i += Is + ...);              // { dg-error "" }
24   (i -= Is + ...);              // { dg-error "" }
25   (i *= Is + ...);              // { dg-error "" }
26   (i /= Is + ...);              // { dg-error "" }
27   (i %= Is + ...);              // { dg-error "" }
28   (i ^= Is + ...);              // { dg-error "" }
29   (i |= Is + ...);              // { dg-error "" }
30   (i &= Is + ...);              // { dg-error "" }
31   (i <<= Is + ...);             // { dg-error "" }
32   (i >>= Is + ...);             // { dg-error "" }
33   (i == Is + ...);              // { dg-error "" }
34   (i != Is + ...);              // { dg-error "" }
35   (i < Is + ...);               // { dg-error "" }
36   (i > Is + ...);               // { dg-error "" }
37   (i <= Is + ...);              // { dg-error "" }
38   (i >= Is + ...);              // { dg-error "" }
39   (i && Is + ...);              // { dg-error "" }
40   (i || Is + ...);              // { dg-error "" }
41   (i , Is + ...);               // { dg-error "" }