Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gcc.dg/c99-array-lval-8.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 non-lvalue arrays: test that qualifiers on non-lvalues containing arrays do not remain when those arrays decay to pointers. PR 35235. */ /* { dg-do compile } */ /* { dg-options "-std=iso9899:1999 -pedantic-errors" } */ int a; void f (void) { const struct { int a[1]; } s; int *p1 = s.a; /* { dg-error "qualifier" } */ int *p2 = (a ? s : s).a; /* In this case, the qualifier is properly on the array element type not on the rvalue structure and so is not discarded. */ struct { const int a[1]; } t; int *p3 = t.a; /* { dg-error "qualifier" } */ int *p4 = (a ? t : t).a; /* { dg-error "qualifier" } */ /* The issue could also lead to code being wrongly accepted. */ const struct { int a[1][1]; } u; const int (*p5)[1] = u.a; const int (*p6)[1] = (a ? u : u).a; /* { dg-error "pointer" } */ }