diff options
author | Andrew Pinski <pinskia@gcc.gnu.org> | 2007-05-28 17:25:25 -0700 |
---|---|---|
committer | Andrew Pinski <pinskia@gcc.gnu.org> | 2007-05-28 17:25:25 -0700 |
commit | a87db577fbb1b87486527c98b44727991ee998b4 (patch) | |
tree | cf32829ced2c56d0078e6325871e873883706429 /gcc/cp | |
parent | 8d9016fcd33941f1542f0e6c8abb6373bd2cfbe0 (diff) | |
download | gcc-a87db577fbb1b87486527c98b44727991ee998b4.zip gcc-a87db577fbb1b87486527c98b44727991ee998b4.tar.gz gcc-a87db577fbb1b87486527c98b44727991ee998b4.tar.bz2 |
[multiple changes]
2007-05-28 Andrew Pinski <Andrew_pinski@playstation.sony.com>
PR c/31339
* c-typeck.c (build_unary_op <case PREINCREMENT_EXPR,
case POSTINCREMENT_EXPR, case PREDECREMENT_EXPR,
case POSTDECREMENT_EXPR>): Return the error_mark_node
if either the real or imaginary parts would an
error_mark_node.
2007-05-28 Andrew Pinski <Andrew_pinski@playstation.sony.com>
PR c++/31339
* typeck.c (build_unary_op <case PREINCREMENT_EXPR,
case POSTINCREMENT_EXPR, case PREDECREMENT_EXPR,
case POSTDECREMENT_EXPR>): Return the error_mark_node
if either the real or imaginary parts would an
error_mark_node.
2007-05-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR c/31339
* gcc.dg/boolcomplex-1.c: New test.
PR c++/31339
* g++.dg/ext/boolcomplex-1.c: New test
From-SVN: r125156
Diffstat (limited to 'gcc/cp')
-rw-r--r-- | gcc/cp/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/cp/typeck.c | 5 |
2 files changed, 13 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 5b4d88c..9dca96a 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,12 @@ +2007-05-28 Andrew Pinski <Andrew_pinski@playstation.sony.com> + + PR c++/31339 + * typeck.c (build_unary_op <case PREINCREMENT_EXPR, + case POSTINCREMENT_EXPR, case PREDECREMENT_EXPR, + case POSTDECREMENT_EXPR>): Return the error_mark_node + if either the real or imaginary parts would an + error_mark_node. + 2007-05-25 Simon Martin <simartin@users.sourceforge.net> Manuel Lopez-Ibanez <manu@gcc.gnu.org> diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c index fa0c956..af21330 100644 --- a/gcc/cp/typeck.c +++ b/gcc/cp/typeck.c @@ -4221,8 +4221,11 @@ build_unary_op (enum tree_code code, tree xarg, int noconvert) arg = stabilize_reference (arg); real = build_unary_op (REALPART_EXPR, arg, 1); imag = build_unary_op (IMAGPART_EXPR, arg, 1); + real = build_unary_op (code, real, 1); + if (real == error_mark_node || imag == error_mark_node) + return error_mark_node; return build2 (COMPLEX_EXPR, TREE_TYPE (arg), - build_unary_op (code, real, 1), imag); + real, imag); } /* Report invalid types. */ |