diff options
author | Roger Sayle <roger@eyesopen.com> | 2003-08-12 01:45:23 +0000 |
---|---|---|
committer | Roger Sayle <sayle@gcc.gnu.org> | 2003-08-12 01:45:23 +0000 |
commit | 11017cc737b10f7eb7544ae55a340584d22fb9a8 (patch) | |
tree | a8d42fe56d075487227b2ad0039a17a20b332091 /gcc/expr.c | |
parent | af7b5c1c00a3ee89369358ef8a53f4b4b74bbbf9 (diff) | |
download | gcc-11017cc737b10f7eb7544ae55a340584d22fb9a8.zip gcc-11017cc737b10f7eb7544ae55a340584d22fb9a8.tar.gz gcc-11017cc737b10f7eb7544ae55a340584d22fb9a8.tar.bz2 |
expr.c (expand_expr): If an ABS_EXPR has a complex type, abort.
* expr.c (expand_expr): If an ABS_EXPR has a complex type, abort.
* c-typeck.c (build_unary_op): COMPLEX_TYPE is not a valid
typecode for an ABS_EXPR.
* doc/c-tree.texi: Document ABS_EXPR.
From-SVN: r70349
Diffstat (limited to 'gcc/expr.c')
-rw-r--r-- | gcc/expr.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -8475,10 +8475,10 @@ expand_expr (tree exp, rtx target, enum machine_mode tmode, enum expand_modifier if (modifier == EXPAND_STACK_PARM) target = 0; - /* Handle complex values specially. */ + /* ABS_EXPR is not valid for complex arguments. */ if (GET_MODE_CLASS (mode) == MODE_COMPLEX_INT || GET_MODE_CLASS (mode) == MODE_COMPLEX_FLOAT) - return expand_complex_abs (mode, op0, target, unsignedp); + abort (); /* Unsigned abs is simply the operand. Testing here means we don't risk generating incorrect code below. */ |