aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJoern Rennecke <joern.rennecke@embecosm.com>2013-08-30 14:20:29 +0000
committerJoern Rennecke <amylaar@gcc.gnu.org>2013-08-30 15:20:29 +0100
commitac7eacd2f37c1565ef92a1e3c8cc7510059d4a6c (patch)
tree16a9f77dfa88a4e960235838eb97546b981db960 /gcc
parent8f2ea9a3b7203a16520353b72606396a22460c24 (diff)
downloadgcc-ac7eacd2f37c1565ef92a1e3c8cc7510059d4a6c.zip
gcc-ac7eacd2f37c1565ef92a1e3c8cc7510059d4a6c.tar.gz
gcc-ac7eacd2f37c1565ef92a1e3c8cc7510059d4a6c.tar.bz2
recog.c (verify_changes): Verify that changes[i].old is non-zero before applying REG_P.
* recog.c (verify_changes): Verify that changes[i].old is non-zero before applying REG_P. From-SVN: r202107
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/recog.c5
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b63c320..6ca069b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2013-08-30 Joern Rennecke <joern.rennecke@embecosm.com>
+
+ * recog.c (verify_changes): Verify that changes[i].old is non-zero
+ before applying REG_P.
+
2013-08-30 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/58277
diff --git a/gcc/recog.c b/gcc/recog.c
index 2d44416..690b20e 100644
--- a/gcc/recog.c
+++ b/gcc/recog.c
@@ -397,7 +397,10 @@ verify_changes (int num)
MEM_ADDR_SPACE (object)))
break;
}
- else if (REG_P (changes[i].old)
+ else if (/* changes[i].old might be zero, e.g. when putting a
+ REG_FRAME_RELATED_EXPR into a previously empty list. */
+ changes[i].old
+ && REG_P (changes[i].old)
&& asm_noperands (PATTERN (object)) > 0
&& REG_EXPR (changes[i].old) != NULL_TREE
&& DECL_ASSEMBLER_NAME_SET_P (REG_EXPR (changes[i].old))