Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gcc.dg/vla-13.c @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
/* Test for VLA size evaluation; see PR 35198. */ /* Origin: Joseph Myers <joseph@codesourcery.com> */ /* { dg-do run } */ /* { dg-options "-std=c99" } */ extern void exit (int); extern void abort (void); int i; void *p; void f1 (void *x, int j) { p = (int (*)[++i])x; if (i != j) abort (); } void f1c (void *x, int j) { p = (int (*)[++i]){x}; if (i != j) abort (); } void f2 (void *x, int j) { x = (void *)(int (*)[++i])p; if (i != j) abort (); } void f2c (void *x, int j) { x = (void *)(int (*)[++i]){p}; if (i != j) abort (); } void f3 (void *x, int j) { (void)(int (*)[++i])p; if (i != j) abort (); } void f3c (void *x, int j) { (void)(int (*)[++i]){p}; if (i != j) abort (); } void f4 (void *x, int j) { (int (*)[++i])p; (int (*)[++i])p; if (i != j) abort (); } void f4c (void *x, int j) { (int (*)[++i]){p}; (int (*)[++i]){p}; if (i != j) abort (); } void f5c (void *x, int j, int k) { (++i, f3c (x, j), (int (*)[++i]){p}); if (i != k) abort (); } int main (void) { f1 (p, 1); f2 (p, 2); f3 (p, 3); f4 (p, 5); f1c (p, 6); f2c (p, 7); f3c (p, 8); f4c (p, 10); f5c (p, 12, 13); exit (0); }