52 lines
1.6 KiB
Diff
52 lines
1.6 KiB
Diff
2009-03-27 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
* config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
|
|
following vector keyword has expansion starting with pixel or bool
|
|
keyword, expand vector to __vector and pixel or bool to __pixel or
|
|
__bool.
|
|
|
|
* gcc.target/powerpc/altivec-28.c: New test.
|
|
|
|
--- gcc/config/rs6000/rs6000-c.c.jj 2008-10-23 13:21:36.000000000 +0200
|
|
+++ gcc/config/rs6000/rs6000-c.c 2009-03-27 11:45:50.000000000 +0100
|
|
@@ -188,7 +188,19 @@ rs6000_macro_to_expand (cpp_reader *pfil
|
|
tok = cpp_peek_token (pfile, idx++);
|
|
while (tok->type == CPP_PADDING);
|
|
ident = altivec_categorize_keyword (tok);
|
|
- if (ident)
|
|
+ if (ident == C_CPP_HASHNODE (__pixel_keyword))
|
|
+ {
|
|
+ expand_this = C_CPP_HASHNODE (__vector_keyword);
|
|
+ expand_bool_pixel = __pixel_keyword;
|
|
+ rid_code = RID_MAX;
|
|
+ }
|
|
+ else if (ident == C_CPP_HASHNODE (__bool_keyword))
|
|
+ {
|
|
+ expand_this = C_CPP_HASHNODE (__vector_keyword);
|
|
+ expand_bool_pixel = __bool_keyword;
|
|
+ rid_code = RID_MAX;
|
|
+ }
|
|
+ else if (ident)
|
|
rid_code = (enum rid)(ident->rid_code);
|
|
}
|
|
|
|
--- gcc/testsuite/gcc.target/powerpc/altivec-28.c.jj 2009-03-27 11:47:23.000000000 +0100
|
|
+++ gcc/testsuite/gcc.target/powerpc/altivec-28.c 2009-03-27 11:50:15.000000000 +0100
|
|
@@ -0,0 +1,16 @@
|
|
+/* { dg-do compile { target powerpc*-*-* } } */
|
|
+/* { dg-require-effective-target powerpc_altivec_ok } */
|
|
+/* { dg-options "-maltivec" } */
|
|
+
|
|
+#define B bool
|
|
+#define P pixel
|
|
+#define I int
|
|
+#define BI bool int
|
|
+#define PI pixel int
|
|
+
|
|
+vector B int i;
|
|
+vector P int j;
|
|
+vector B I k;
|
|
+vector P I l;
|
|
+vector BI m;
|
|
+vector PI n;
|