From: Jakub Jelinek Date: Sat, 28 Mar 2009 17:24:41 +0000 (+0100) Subject: rs6000-c.c (rs6000_macro_to_expand): If macro following vector keyword has expansion... X-Git-Tag: releases/gcc-4.5.0~7081 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b3bf8855c071b86fb3403f0d3e4d415702cb07ea;p=thirdparty%2Fgcc.git rs6000-c.c (rs6000_macro_to_expand): If macro following vector keyword has expansion starting with pixel or bool... * 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. From-SVN: r145199 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 012e0a36fd05..4dda512f74c2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2009-03-28 Jakub Jelinek + * 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. + PR c++/39554 * opts.c (warning_disallowed_functions, warn_disallowed_functions, warn_if_disallowed_function_p): Removed. diff --git a/gcc/config/rs6000/rs6000-c.c b/gcc/config/rs6000/rs6000-c.c index f968b2f1467c..3aa17143b67d 100644 --- a/gcc/config/rs6000/rs6000-c.c +++ b/gcc/config/rs6000/rs6000-c.c @@ -188,7 +188,19 @@ rs6000_macro_to_expand (cpp_reader *pfile, const cpp_token *tok) 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); } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 9a6d50a4c535..4f7b111d0bd2 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,7 @@ 2009-03-28 Jakub Jelinek + * gcc.target/powerpc/altivec-28.c: New test. + PR c++/39554 * gcc.dg/wdisallowed-functions-1.c: Removed. * gcc.dg/wdisallowed-functions-2.c: Removed. diff --git a/gcc/testsuite/gcc.target/powerpc/altivec-28.c b/gcc/testsuite/gcc.target/powerpc/altivec-28.c new file mode 100644 index 000000000000..db6c25ac7e85 --- /dev/null +++ b/gcc/testsuite/gcc.target/powerpc/altivec-28.c @@ -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;