diff options
author | Per Bothner <bothner@gcc.gnu.org> | 1996-01-22 15:40:12 -0800 |
---|---|---|
committer | Per Bothner <bothner@gcc.gnu.org> | 1996-01-22 15:40:12 -0800 |
commit | 52529158ea7d7b80ea578218c9a03d8ff6f3b0d1 (patch) | |
tree | 4c610bc58db5e76780f98f3717af42208fbd3b73 /gcc/cppexp.c | |
parent | de5529c85d637022659a8581f854ae81230f069a (diff) | |
download | gcc-52529158ea7d7b80ea578218c9a03d8ff6f3b0d1.zip gcc-52529158ea7d7b80ea578218c9a03d8ff6f3b0d1.tar.gz gcc-52529158ea7d7b80ea578218c9a03d8ff6f3b0d1.tar.bz2 |
cppexp.c (cpp_parse_expr): Set HAVE_VALUE flag for unary minus, even if skip_evaluation is true.
* cppexp.c (cpp_parse_expr): Set HAVE_VALUE flag for unary
minus, even if skip_evaluation is true.
From-SVN: r11085
Diffstat (limited to 'gcc/cppexp.c')
-rw-r--r-- | gcc/cppexp.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/gcc/cppexp.c b/gcc/cppexp.c index b830f9b..043098a 100644 --- a/gcc/cppexp.c +++ b/gcc/cppexp.c @@ -279,7 +279,7 @@ static struct token tokentab2[] = { struct operation cpp_lex (pfile) -cpp_reader *pfile; + cpp_reader *pfile; { register int c; register int namelen; @@ -793,11 +793,10 @@ cpp_parse_expr (pfile) } break; case '-': - if (skip_evaluation) ; /* do nothing */ - else if (!(top->flags & HAVE_VALUE)) + if (!(top->flags & HAVE_VALUE)) { /* Unary '-' */ top->value = - v2; - if ((top->value & v2) < 0 && ! unsigned2) + if (!skip_evaluation && (top->value & v2) < 0 && !unsigned2) integer_overflow (pfile); top->unsignedp = unsigned2; top->flags |= HAVE_VALUE; @@ -806,7 +805,7 @@ cpp_parse_expr (pfile) { /* Binary '-' */ top->value = v1 - v2; top->unsignedp = unsigned1 || unsigned2; - if (! top->unsignedp + if (! top->unsignedp && ! skip_evaluation && ! possible_sum_sign (top->value, v2, v1)) integer_overflow (pfile); } |