After we report various errors about array size, we set for error-recovery
the size to be 1, but because size_int_const is false, it still means we
pretend the array is a VLA, can emit a second diagnostics in that case etc.
E.g.
$ ./cc1.unpatched -quiet a.c
a.c:1:5: error: size of array ‘f’ has non-integer type
1 | int f[100.0];
| ^
a.c:1:1: warning: variably modified ‘f’ at file scope
1 | int f[100.0];
| ^~~
$ ./cc1 -quiet a.c
a.c:1:5: error: size of array ‘f’ has non-integer type
1 | int f[100.0];
| ^
2020-03-28 Jakub Jelinek <jakub@redhat.com>
PR c/93573
* c-decl.c (grokdeclarator): After issuing errors, set size_int_const
to true after setting size to integer_one_node.
* gcc.dg/pr93573-1.c: New test.
* gcc.dg/pr93573-2.c: New test.
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| ChangeLog | Loading commit data... | |
| Make-lang.in | Loading commit data... | |
| c-aux-info.c | Loading commit data... | |
| c-convert.c | Loading commit data... | |
| c-decl.c | Loading commit data... | |
| c-errors.c | Loading commit data... | |
| c-fold.c | Loading commit data... | |
| c-lang.c | Loading commit data... | |
| c-lang.h | Loading commit data... | |
| c-objc-common.c | Loading commit data... | |
| c-objc-common.h | Loading commit data... | |
| c-parser.c | Loading commit data... | |
| c-parser.h | Loading commit data... | |
| c-tree.h | Loading commit data... | |
| c-typeck.c | Loading commit data... | |
| config-lang.in | Loading commit data... | |
| gccspec.c | Loading commit data... | |
| gimple-parser.c | Loading commit data... | |
| gimple-parser.h | Loading commit data... |