aboutsummaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2008-10-11 10:55:43 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2008-10-11 10:55:43 +0200
commit506a7bc8995f0ca9357eca2ff7cdeb857612e283 (patch)
tree7ee16b76a9eee4b027d70094c96fb31d27bea334 /gcc/config
parent8d22015287cfd2caf79f9374863ec4d9578227e0 (diff)
downloadgcc-506a7bc8995f0ca9357eca2ff7cdeb857612e283.zip
gcc-506a7bc8995f0ca9357eca2ff7cdeb857612e283.tar.gz
gcc-506a7bc8995f0ca9357eca2ff7cdeb857612e283.tar.bz2
re PR target/35760 (ICE with complex types and -static on PPC darwin)
PR target/35760 * config/rs6000/rs6000.c (rs6000_legitimize_address): Only create LO_SUM on Darwin if mode has just one unit. * gcc.c-torture/compile/pr35760.c: New test. From-SVN: r141055
Diffstat (limited to 'gcc/config')
-rw-r--r--gcc/config/rs6000/rs6000.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 9f48b61..1218ea9 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -3860,6 +3860,7 @@ rs6000_legitimize_address (rtx x, rtx oldx ATTRIBUTE_UNUSED,
&& GET_CODE (x) != CONST_INT
&& GET_CODE (x) != CONST_DOUBLE
&& CONSTANT_P (x)
+ && GET_MODE_NUNITS (mode) == 1
&& ((TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_DOUBLE_FLOAT)
|| (mode != DFmode && mode != DDmode))
&& mode != DImode