diff options
author | Ben Elliston <bje@au.ibm.com> | 2008-07-14 05:09:48 +0000 |
---|---|---|
committer | Ben Elliston <bje@gcc.gnu.org> | 2008-07-14 15:09:48 +1000 |
commit | 5950c3c9a7729687a04f9b008e441959a2d9114d (patch) | |
tree | 5549f4ccea5a3b85211df500d0617fd3866b139f /gcc/testsuite/gcc.dg/vmx | |
parent | b463e8de6c7e9c7fe8ad2f4f4be126f58b23c07a (diff) | |
download | gcc-5950c3c9a7729687a04f9b008e441959a2d9114d.zip gcc-5950c3c9a7729687a04f9b008e441959a2d9114d.tar.gz gcc-5950c3c9a7729687a04f9b008e441959a2d9114d.tar.bz2 |
cpplib.h (NODE_CONDITIONAL): New.
libcpp/
* include/cpplib.h (NODE_CONDITIONAL): New.
(struct cpp_callbacks): New macro_to_expand field.
(struct cpp_hashnode): Adjust size of flags and type fields.
(cpp_peek_token): Prototype.
* lex.c (cpp_peek_token): New function.
(_cpp_temp_token): Protect pre-existing lookaheads.
* macro.c (cpp_get_token): Expand any conditional macros.
(_cpp_backup_tokens_direct): New.
(_cpp_backup_tokens): Call _cpp_backup_tokens_direct.
(warn_of_redefinition): Silently allow redefined conditional
macros.
(_cpp_create_definition): Remove the conditional flag when a user
defines one of the conditional macros.
* internal.h (_cpp_backup_tokens_direct): New prototype.
gcc/
* c-common.h (C_CPP_HASHNODE): New macro.
* coretypes.h (struct cpp_token): Forward declare.
* doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
the context-sensitive keyword method.
* config/rs6000/rs6000-c.c (__vector_keyword, vector_keyword,
__pixel_keyword, pixel_keyword, __bool_keyword, bool_keyword,
expand_bool_pixel): New.
(altivec_categorize_keyword): New function.
(init_vector_keywords): New function.
(rs6000_macro_to_expand): Likewise.
(rs6000_cpu_cpp_builtins): Enable context-sensitive macros if not
compiling an ISO C dialect.
gcc/testsuite/
* gcc.target/powerpc/altivec-macros.c: New test.
* gcc.target/powerpc/altviec-26.c: Likewise.
* gcc.dg/vmx/1b-06.c: Remove bool variable.
* gcc.dg/vmx/1b-07.c: Likewise.
* gcc.dg/vmx/1b-06-ansi.c: New test for the pre-define method.
* gcc.dg/vmx/1b-07-ansi.c: Likewise.
From-SVN: r137775
Diffstat (limited to 'gcc/testsuite/gcc.dg/vmx')
-rw-r--r-- | gcc/testsuite/gcc.dg/vmx/1b-06-ansi.c | 24 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vmx/1b-06.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vmx/1b-07-ansi.c | 59 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vmx/1b-07.c | 1 |
4 files changed, 83 insertions, 2 deletions
diff --git a/gcc/testsuite/gcc.dg/vmx/1b-06-ansi.c b/gcc/testsuite/gcc.dg/vmx/1b-06-ansi.c new file mode 100644 index 0000000..780a4e6 --- /dev/null +++ b/gcc/testsuite/gcc.dg/vmx/1b-06-ansi.c @@ -0,0 +1,24 @@ +/* { dg-do compile } */ +/* { dg-options "-ansi -maltivec" } */ + +#include <altivec.h> +vector char bool _4 ; +vector char unsigned _31 ; +vector char signed _59 ; +/* bool is permitted in the predefine method, as it is expanded + unconditionally to int. */ +bool _84 ; +vector pixel _89 ; +vector int bool _95 ; +vector short bool _102 ; +vector unsigned int _122 ; +vector unsigned short _129 ; +vector signed int _150 ; +vector signed short _157 ; +vector int bool _179 ; +vector int short bool _186 ; +vector unsigned int _206 ; +vector int unsigned short _213 ; +vector signed int _234 ; +vector int signed short _241 ; +vector float _339 ; diff --git a/gcc/testsuite/gcc.dg/vmx/1b-06.c b/gcc/testsuite/gcc.dg/vmx/1b-06.c index 84c6981..d25164c 100644 --- a/gcc/testsuite/gcc.dg/vmx/1b-06.c +++ b/gcc/testsuite/gcc.dg/vmx/1b-06.c @@ -3,7 +3,6 @@ vector char bool _4 ; vector char unsigned _31 ; vector char signed _59 ; -bool _84 ; vector pixel _89 ; vector int bool _95 ; vector short bool _102 ; diff --git a/gcc/testsuite/gcc.dg/vmx/1b-07-ansi.c b/gcc/testsuite/gcc.dg/vmx/1b-07-ansi.c new file mode 100644 index 0000000..cfc9863 --- /dev/null +++ b/gcc/testsuite/gcc.dg/vmx/1b-07-ansi.c @@ -0,0 +1,59 @@ +/* { dg-do compile } */ +/* { dg-options "-ansi -maltivec" } */ + +#include <altivec.h> +vector char bool _0 ; +vector bool char _8 ; +vector char unsigned _56 ; +vector unsigned char _64 ; +vector char signed _112 ; +vector signed char _120 ; +/* bool is permitted in the predefine method, as it is expanded + unconditionally to int. */ +bool _168 ; +vector pixel _170 ; +vector int bool _178 ; +vector bool int _186 ; +vector short bool _234 ; +vector bool short _242 ; +vector unsigned int _290 ; +vector int unsigned _298 ; +vector unsigned short _346 ; +vector short unsigned _354 ; +vector signed int _402 ; +vector int signed _410 ; +vector signed short _458 ; +vector short signed _466 ; +vector int bool _514 ; +vector int bool _544 ; +vector int bool _559 ; +vector bool int _589 ; +vector int short bool _874 ; +vector int bool short _889 ; +vector short int bool _904 ; +vector short bool int _919 ; +vector bool int short _934 ; +vector bool short int _949 ; +vector unsigned int _1234 ; +vector int unsigned _1249 ; +vector unsigned int _1279 ; +vector int unsigned _1294 ; +vector unsigned int _1309 ; +vector int unsigned short _1594 ; +vector int short unsigned _1609 ; +vector unsigned int short _1624 ; +vector unsigned short int _1639 ; +vector short int unsigned _1654 ; +vector short unsigned int _1669 ; +vector signed int _1954 ; +vector int signed _1969 ; +vector signed int _1999 ; +vector int signed _2014 ; +vector signed int _2029 ; +vector int signed short _2314 ; +vector int short signed _2329 ; +vector signed int short _2344 ; +vector signed short int _2359 ; +vector short int signed _2374 ; +vector short signed int _2389 ; +vector float _2674 ; diff --git a/gcc/testsuite/gcc.dg/vmx/1b-07.c b/gcc/testsuite/gcc.dg/vmx/1b-07.c index b1f4bb6..44bf402 100644 --- a/gcc/testsuite/gcc.dg/vmx/1b-07.c +++ b/gcc/testsuite/gcc.dg/vmx/1b-07.c @@ -6,7 +6,6 @@ vector char unsigned _56 ; vector unsigned char _64 ; vector char signed _112 ; vector signed char _120 ; -bool _168 ; vector pixel _170 ; vector int bool _178 ; vector bool int _186 ; |