aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2010-03-18 21:17:32 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2010-03-18 21:17:32 +0100
commitf0c12fcc59639584a72ac2ce06d4011ddd2d0c12 (patch)
tree266bd8a90e21ed18458f7d4191a5b05f0322be73 /gcc
parente999b0c986e49756090018ec7187f2b8b21985c7 (diff)
downloadgcc-f0c12fcc59639584a72ac2ce06d4011ddd2d0c12.zip
gcc-f0c12fcc59639584a72ac2ce06d4011ddd2d0c12.tar.gz
gcc-f0c12fcc59639584a72ac2ce06d4011ddd2d0c12.tar.bz2
re PR bootstrap/43403 (ICE in stage1 compiling __bswapdi2)
PR bootstrap/43403 * var-tracking.c (vt_init_cfa_base): Do nothing if cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register. From-SVN: r157549
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/var-tracking.c6
2 files changed, 13 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3e74d3f..a86970c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2010-03-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR bootstrap/43403
+ * var-tracking.c (vt_init_cfa_base): Do nothing if
+ cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed
+ register.
+
2010-03-18 Alexandre Oliva <aoliva@redhat.com>
PR debug/42873
diff --git a/gcc/var-tracking.c b/gcc/var-tracking.c
index 12286ec..b95b49b 100644
--- a/gcc/var-tracking.c
+++ b/gcc/var-tracking.c
@@ -8004,6 +8004,12 @@ vt_init_cfa_base (void)
#else
cfa_base_rtx = arg_pointer_rtx;
#endif
+ if (cfa_base_rtx == hard_frame_pointer_rtx
+ || !fixed_regs[REGNO (cfa_base_rtx)])
+ {
+ cfa_base_rtx = NULL_RTX;
+ return;
+ }
if (!MAY_HAVE_DEBUG_INSNS)
return;