diff options
author | meissner <meissner@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-03-21 16:21:30 +0000 |
---|---|---|
committer | meissner <meissner@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-03-21 16:21:30 +0000 |
commit | 00e59df9a8ecab687e53058a52de9ec6568fc753 (patch) | |
tree | a11038042e07218234e45c1da1c876bdbdf8c2d5 /libcpp/expr.c | |
parent | 3f1507c5d2e6f7941727e98c58feeff7a9a70f0a (diff) | |
download | gcc-00e59df9a8ecab687e53058a52de9ec6568fc753.tar.gz |
Make UNSPEC/UNSPECV constants use the enum; Fix 48192; Add test case for 48053
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171247 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libcpp/expr.c')
-rw-r--r-- | libcpp/expr.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/libcpp/expr.c b/libcpp/expr.c index d2fec2a56a6..3c36127b54f 100644 --- a/libcpp/expr.c +++ b/libcpp/expr.c @@ -720,10 +720,15 @@ parse_defined (cpp_reader *pfile) pfile->state.prevent_expansion--; + /* Do not treat conditional macros as being defined. This is due to the + powerpc and spu ports using conditional macros for 'vector', 'bool', and + 'pixel' to act as conditional keywords. This messes up tests like #ifndef + bool. */ result.unsignedp = false; result.high = 0; result.overflow = false; - result.low = node && node->type == NT_MACRO; + result.low = (node && node->type == NT_MACRO + && (node->flags & NODE_CONDITIONAL) == 0); return result; } |