patches/gcc/4.3.0/210-pr35440.patch
changeset 1779 708c0b301c7b
parent 1778 9d1c1b6af205
child 1780 9c03c1a508d8
     1.1 --- a/patches/gcc/4.3.0/210-pr35440.patch	Sun Jan 31 12:22:54 2010 +0100
     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 -+}