Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gcc.dg/vla-16.c @ 158:494b0b89df80 default tip
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 25 May 2020 18:13:55 +0900 (2020-05-25) |
parents | 04ced10e8804 |
children |
line wrap: on
line source
/* Test for modifying and taking addresses of compound literals whose variably modified types involve typeof. */ /* Origin: Joseph Myers <joseph@codesourcery.com> */ /* { dg-do run } */ /* { dg-options "-std=gnu99" } */ #include <stdarg.h> extern void exit (int); extern void abort (void); int a[1]; void f1 (void) { int i = 0; int (**p)[1] = &(typeof (++i, (int (*)[i])a)){&a}; if (*p != &a) abort (); if (i != 1) abort (); } void f2 (void) { int i = 0; (typeof (++i, (int (*)[i])a)){&a} = 0; if (i != 1) abort (); } void f3 (void) { int i = 0; (typeof (++i, (int (*)[i])a)){&a} += 1; if (i != 1) abort (); } void f4 (void) { int i = 0; --(typeof (++i, (int (*)[i])a)){&a + 1}; if (i != 1) abort (); } void f5 (void) { int i = 0; (typeof (++i, (int (*)[i])a)){&a}++; if (i != 1) abort (); } int main (void) { f1 (); f2 (); f3 (); f4 (); f5 (); exit (0); }