diff options
author | Marek Polacek <polacek@redhat.com> | 2013-12-03 11:57:31 +0000 |
---|---|---|
committer | Marek Polacek <mpolacek@gcc.gnu.org> | 2013-12-03 11:57:31 +0000 |
commit | da0fc4547a3377430cbc522c4676cd1f707f32d2 (patch) | |
tree | 91085ec52c0073bd8c0dcaca52eb9f01e822159a /gcc | |
parent | 199f847c9819b6cb2c36f109e53d1ef0ad8ace83 (diff) | |
download | gcc-da0fc4547a3377430cbc522c4676cd1f707f32d2.zip gcc-da0fc4547a3377430cbc522c4676cd1f707f32d2.tar.gz gcc-da0fc4547a3377430cbc522c4676cd1f707f32d2.tar.bz2 |
re PR c/59351 (ICE on empty compound literal with -pedantic)
PR c/59351
c/
* c-decl.c (build_compound_literal): Allow compound literals with
empty initial value.
testsuite/
* gcc.dg/pr59351.c: New test.
From-SVN: r205627
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/c/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/c/c-decl.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr59351.c | 8 |
4 files changed, 22 insertions, 1 deletions
diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog index 42b0bb7..b97e65e 100644 --- a/gcc/c/ChangeLog +++ b/gcc/c/ChangeLog @@ -1,3 +1,9 @@ +2013-12-03 Marek Polacek <polacek@redhat.com> + + PR c/59351 + * c-decl.c (build_compound_literal): Allow compound literals with + empty initial value. + 2013-12-02 Joseph Myers <joseph@codesourcery.com> PR c/58235 diff --git a/gcc/c/c-decl.c b/gcc/c/c-decl.c index 27be7fc..3ebc002 100644 --- a/gcc/c/c-decl.c +++ b/gcc/c/c-decl.c @@ -4693,7 +4693,9 @@ build_compound_literal (location_t loc, tree type, tree init, bool non_const) { int failure = complete_array_type (&TREE_TYPE (decl), DECL_INITIAL (decl), true); - gcc_assert (!failure); + /* If complete_array_type returns 3, it means that the + initial value of the compound literal is empty. Allow it. */ + gcc_assert (failure == 0 || failure == 3); type = TREE_TYPE (decl); TREE_TYPE (DECL_INITIAL (decl)) = type; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c34641f..60019c9 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2013-12-03 Marek Polacek <polacek@redhat.com> + + PR c/59351 + * gcc.dg/pr59351.c: New test. + 2013-12-03 Chung-Ju Wu <jasonwucj@gmail.com> * gcc.dg/20020312-2.c: Add __nds32__ case. diff --git a/gcc/testsuite/gcc.dg/pr59351.c b/gcc/testsuite/gcc.dg/pr59351.c new file mode 100644 index 0000000..384058f --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr59351.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-std=c99 -Wpedantic" } */ + +unsigned int +foo (void) +{ + return sizeof ((int[]) {}); /* { dg-warning "ISO C forbids empty initializer braces" } */ +} |