aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/simplify-rtx.c4
2 files changed, 8 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ad04198..471219c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2004-12-02 Richard Henderson <rth@redhat.com>
+
+ * simplify-rtx.c (simplify_immed_subreg): Fail complex modes.
+
2004-12-03 Ben Elliston <bje@au.ibm.com>
* doc/cfg.texi (Edges): Update. Document the edge_iterator data
diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c
index 75bf42a..580782d 100644
--- a/gcc/simplify-rtx.c
+++ b/gcc/simplify-rtx.c
@@ -3326,6 +3326,10 @@ simplify_immed_subreg (enum machine_mode outermode, rtx op,
if (GET_MODE_CLASS (outermode) == MODE_CC && GET_CODE (op) == CONST_INT)
return op;
+ /* We have no way to represent a complex constant at the rtl level. */
+ if (COMPLEX_MODE_P (outermode))
+ return NULL_RTX;
+
/* Unpack the value. */
if (GET_CODE (op) == CONST_VECTOR)