Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/gcc.dg/vla-12.c @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
68:561a7518be6b | 111:04ced10e8804 |
---|---|
1 /* Test for typeof evaluation: should be at the appropriate point in | |
2 the containing expression rather than just adding a statement. */ | |
3 /* Origin: Joseph Myers <joseph@codesourcery.com> */ | |
4 /* { dg-do run } */ | |
5 /* { dg-options "-std=gnu99" } */ | |
6 | |
7 extern void exit (int); | |
8 extern void abort (void); | |
9 | |
10 void *p; | |
11 | |
12 void | |
13 f1 (void) | |
14 { | |
15 int i = 0, j = -1, k = -1; | |
16 /* typeof applied to expression with cast. */ | |
17 (j = ++i), (void)(typeof ((int (*)[(k = ++i)])p))p; | |
18 if (j != 1 || k != 2 || i != 2) | |
19 abort (); | |
20 } | |
21 | |
22 void | |
23 f2 (void) | |
24 { | |
25 int i = 0, j = -1, k = -1; | |
26 /* typeof applied to type. */ | |
27 (j = ++i), (void)(typeof (int (*)[(k = ++i)]))p; | |
28 if (j != 1 || k != 2 || i != 2) | |
29 abort (); | |
30 } | |
31 | |
32 void | |
33 f3 (void) | |
34 { | |
35 int i = 0, j = -1, k = -1; | |
36 void *q; | |
37 /* typeof applied to expression with cast that is used. */ | |
38 (j = ++i), (void)((typeof (1 + (int (*)[(k = ++i)])p))p); | |
39 if (j != 1 || k != 2 || i != 2) | |
40 abort (); | |
41 } | |
42 | |
43 int | |
44 main (void) | |
45 { | |
46 f1 (); | |
47 f2 (); | |
48 f3 (); | |
49 exit (0); | |
50 } |