1.1 --- a/patches/gcc/4.3.0/375-gcc43-pr35440.patch Mon Jul 28 20:17:48 2008 +0000
1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3 @@ -1,59 +0,0 @@
1.4 -Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.0/gentoo/60_all_gcc43-pr35440.patch
1.5 -2008-03-19 Jakub Jelinek <jakub@redhat.com>
1.6 -
1.7 - PR c/35440
1.8 - * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
1.9 - for all types.
1.10 -
1.11 - * gcc.dg/pr35440.c: New test.
1.12 -
1.13 -diff -durN gcc-4.3.0.orig/gcc/c-pretty-print.c gcc-4.3.0/gcc/c-pretty-print.c
1.14 ---- gcc-4.3.0.orig/gcc/c-pretty-print.c 2008-01-29 14:59:59.000000000 +0100
1.15 -+++ gcc-4.3.0/gcc/c-pretty-print.c 2008-06-10 14:44:54.000000000 +0200
1.16 -@@ -1173,6 +1173,12 @@
1.17 - tree type = TREE_TYPE (e);
1.18 - const enum tree_code code = TREE_CODE (type);
1.19 -
1.20 -+ if (TREE_CODE (e) == CONSTRUCTOR)
1.21 -+ {
1.22 -+ pp_c_constructor_elts (pp, CONSTRUCTOR_ELTS (e));
1.23 -+ return;
1.24 -+ }
1.25 -+
1.26 - switch (code)
1.27 - {
1.28 - case RECORD_TYPE:
1.29 -@@ -1207,16 +1213,12 @@
1.30 - case VECTOR_TYPE:
1.31 - if (TREE_CODE (e) == VECTOR_CST)
1.32 - pp_c_expression_list (pp, TREE_VECTOR_CST_ELTS (e));
1.33 -- else if (TREE_CODE (e) == CONSTRUCTOR)
1.34 -- pp_c_constructor_elts (pp, CONSTRUCTOR_ELTS (e));
1.35 - else
1.36 - break;
1.37 - return;
1.38 -
1.39 - case COMPLEX_TYPE:
1.40 -- if (TREE_CODE (e) == CONSTRUCTOR)
1.41 -- pp_c_constructor_elts (pp, CONSTRUCTOR_ELTS (e));
1.42 -- else if (TREE_CODE (e) == COMPLEX_CST || TREE_CODE (e) == COMPLEX_EXPR)
1.43 -+ if (TREE_CODE (e) == COMPLEX_CST || TREE_CODE (e) == COMPLEX_EXPR)
1.44 - {
1.45 - const bool cst = TREE_CODE (e) == COMPLEX_CST;
1.46 - pp_expression (pp, cst ? TREE_REALPART (e) : TREE_OPERAND (e, 0));
1.47 -diff -durN gcc-4.3.0.orig/gcc/testsuite/gcc.dg/pr35440.c gcc-4.3.0/gcc/testsuite/gcc.dg/pr35440.c
1.48 ---- gcc-4.3.0.orig/gcc/testsuite/gcc.dg/pr35440.c 1970-01-01 01:00:00.000000000 +0100
1.49 -+++ gcc-4.3.0/gcc/testsuite/gcc.dg/pr35440.c 2008-06-10 14:44:54.000000000 +0200
1.50 -@@ -0,0 +1,12 @@
1.51 -+/* PR c/35440 */
1.52 -+/* { dg-do compile } */
1.53 -+/* { dg-options "-std=gnu99" } */
1.54 -+
1.55 -+struct A {};
1.56 -+struct B { int i; char j[2]; };
1.57 -+
1.58 -+void foo (void)
1.59 -+{
1.60 -+ (struct A){}(); /* { dg-error "called object" } */
1.61 -+ (struct B){ .i = 2, .j[1] = 1 }(); /* { dg-error "called object" } */
1.62 -+}