This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c/59520] New: a possible inconsistency in error diagnostics with "-pedantic -std=c99"
- From: "su at cs dot ucdavis.edu" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 16 Dec 2013 02:22:59 +0000
- Subject: [Bug c/59520] New: a possible inconsistency in error diagnostics with "-pedantic -std=c99"
- Auto-submitted: auto-generated
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59520
Bug ID: 59520
Summary: a possible inconsistency in error diagnostics with
"-pedantic -std=c99"
Product: gcc
Version: 4.9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: su at cs dot ucdavis.edu
I wonder whether or not the following examples illustrate an unintended
inconsistency with error diagnostics in GCC.
In particular, should the diagnostic message be a warning for error3.c rather
than an error as shown below?
error3.c:1:5: error: zero or negative size array âaâ
int a[] = {};
^
---------------
$ gcc-trunk -pedantic -std=c99 -c error1.c
error1.c:1:12: warning: ISO C forbids empty initializer braces [-Wpedantic]
int a[1] = {};
^
$ clang-trunk -pedantic -std=c99 -c error1.c
error1.c:1:12: warning: use of GNU empty initializer extension
[-Wgnu-empty-initializer]
int a[1] = {};
^
1 warning generated.
$ cat error1.c
int a[1] = {};
$
---------------
$ gcc-trunk -pedantic -std=c99 -c error2.c
error2.c:1:5: warning: array âaâ assumed to have one element [enabled by
default]
int a[];
^
$ clang-trunk -pedantic -std=c99 -c error2.c
error2.c:1:5: warning: tentative array definition assumed to have one element
int a[];
^
1 warning generated.
$ cat error2.c
int a[];
$
---------------
$ gcc-trunk -pedantic -std=c99 -c error3.c
error3.c:1:11: warning: ISO C forbids empty initializer braces [-Wpedantic]
int a[] = {};
^
error3.c:1:5: error: zero or negative size array âaâ
int a[] = {};
^
$ clang-trunk -pedantic -std=c99 -c error3.c
error3.c:1:11: warning: use of GNU empty initializer extension
[-Wgnu-empty-initializer]
int a[] = {};
^
error3.c:1:11: warning: zero size arrays are an extension [-Wzero-length-array]
2 warnings generated.
$ cat error3.c
int a[] = {};
$