This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PATCH to c-pretty-print handling of VECTOR_TYPE


So, is this OK?

commit 1304f48ca6fc631f17fac71bdbea6ed31377b748
Author: Jason Merrill <jason@redhat.com>
Date:   Wed Mar 3 14:06:41 2010 -0500

    	* c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
    	Use () rather than [], and move before the element type.
    	* cp-demangle.c (d_print_mod): Use () rather than [] for vectors.

diff --git a/gcc/c-pretty-print.c b/gcc/c-pretty-print.c
index 2972a26..e1aabca 100644
--- a/gcc/c-pretty-print.c
+++ b/gcc/c-pretty-print.c
@@ -454,16 +454,17 @@ pp_c_specifier_qualifier_list (c_pretty_printer *pp, tree t)
 
     case VECTOR_TYPE:
     case COMPLEX_TYPE:
-      pp_c_specifier_qualifier_list (pp, TREE_TYPE (t));
       if (code == COMPLEX_TYPE)
 	pp_c_ws_string (pp, flag_isoc99 ? "_Complex" : "__complex__");
       else if (code == VECTOR_TYPE)
 	{
 	  pp_c_ws_string (pp, "__vector");
-	  pp_c_left_bracket (pp);
+	  pp_c_left_paren (pp);
 	  pp_wide_integer (pp, TYPE_VECTOR_SUBPARTS (t));
-	  pp_c_right_bracket (pp);
+	  pp_c_right_paren (pp);
+	  pp_c_whitespace (pp);
 	}
+      pp_c_specifier_qualifier_list (pp, TREE_TYPE (t));
       break;
 
     default:
diff --git a/gcc/testsuite/g++.dg/conversion/simd3.C b/gcc/testsuite/g++.dg/conversion/simd3.C
index dd0a68a..8d96264 100644
--- a/gcc/testsuite/g++.dg/conversion/simd3.C
+++ b/gcc/testsuite/g++.dg/conversion/simd3.C
@@ -10,6 +10,6 @@ unsigned int __attribute__((vector_size(16))) e;
 void foo()
 {
 	b + d; /* { dg-error "invalid operands to binary" } */
-	d += e; /* { dg-message "use -flax-vector-conversions to permit conversions between vectors with differing element types or numbers of subparts.*cannot convert 'unsigned int __vector.4.' to 'int __vector.4.' in assignment" } */
+	d += e; /* { dg-message "use -flax-vector-conversions to permit conversions between vectors with differing element types or numbers of subparts.*cannot convert '__vector.4. unsigned int' to '__vector.4. int' in assignment" } */
 	d2 += d;
 }
diff --git a/gcc/testsuite/g++.dg/ext/vector9.C b/gcc/testsuite/g++.dg/ext/vector9.C
index 0b3a907..32e13b4 100644
--- a/gcc/testsuite/g++.dg/ext/vector9.C
+++ b/gcc/testsuite/g++.dg/ext/vector9.C
@@ -6,5 +6,5 @@ typedef int   v4i __attribute__((vector_size(8)));
 void foo()
 {
   v4f v;
-  !(v4i)v; // { dg-error "int __vector.2|argument" }
+  !(v4i)v; // { dg-error "__vector.2. int|argument" }
 }
diff --git a/gcc/testsuite/g++.dg/other/error23.C b/gcc/testsuite/g++.dg/other/error23.C
index 749345d..0ff1915 100644
--- a/gcc/testsuite/g++.dg/other/error23.C
+++ b/gcc/testsuite/g++.dg/other/error23.C
@@ -2,4 +2,4 @@
 // { dg-do compile }
 
 int v __attribute ((vector_size (8)));
-bool b = !(v - v);	// { dg-error "could not convert .\\(int __vector.2.\\)\\{0, 0\\}. to .bool.|in argument to unary" }
+bool b = !(v - v);	// { dg-error "could not convert .\\(__vector.2. int\\)\\{0, 0\\}. to .bool.|in argument to unary" }
diff --git a/gcc/testsuite/gcc.dg/pr36997.c b/gcc/testsuite/gcc.dg/pr36997.c
index 2bed933..13461b8 100644
--- a/gcc/testsuite/gcc.dg/pr36997.c
+++ b/gcc/testsuite/gcc.dg/pr36997.c
@@ -5,5 +5,5 @@ typedef int __m64 __attribute__ ((__vector_size__ (8), __may_alias__));
 __m64 _mm_add_si64 (__m64 __m1, __m64 __m2)
 {
     return (__m64) __builtin_ia32_paddq ((long long)__m1, (long long)__m2); /* { dg-error "incompatible type" } */
-    /* { dg-message "note: expected 'long long int __vector.1.' but argument is of type 'long long int'" "" { target *-*-* } 7 } */
+    /* { dg-message "note: expected '__vector.1. long long int' but argument is of type 'long long int'" "" { target *-*-* } 7 } */
 }
diff --git a/libiberty/cp-demangle.c b/libiberty/cp-demangle.c
index b1319cf..98c64db 100644
--- a/libiberty/cp-demangle.c
+++ b/libiberty/cp-demangle.c
@@ -4506,9 +4506,9 @@ d_print_mod (struct d_print_info *dpi,
       d_print_comp (dpi, d_left (mod));
       return;
     case DEMANGLE_COMPONENT_VECTOR_TYPE:
-      d_append_string (dpi, " vector[");
+      d_append_string (dpi, " __vector(");
       d_print_comp (dpi, d_left (mod));
-      d_append_char (dpi, ']');
+      d_append_char (dpi, ')');
       return;
 
     default:
diff --git a/libiberty/testsuite/demangle-expected b/libiberty/testsuite/demangle-expected
index 010faec..672f352 100644
--- a/libiberty/testsuite/demangle-expected
+++ b/libiberty/testsuite/demangle-expected
@@ -3928,10 +3928,10 @@ _Z1fN1SUt_E
 f(S::{unnamed type#1})
 --format=gnu-v3
 _Z1fDv32_f
-f(float vector[32])
+f(float __vector(32))
 --format=gnu-v3
 _Z1fIfLi4EEvDv_T0__T_
-void f<float, 4>(float vector[4])
+void f<float, 4>(float __vector(4))
 --format=gnu-v3
 _Z1fI1AEDTclonplfp_fp_EET_
 decltype ((operator+)({parm#1}, {parm#1})) f<A>(A)

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]