diff options
author | Joern Rennecke <joern.rennecke@embecosm.com> | 2013-08-30 14:20:29 +0000 |
---|---|---|
committer | Joern Rennecke <joern.rennecke@embecosm.com> | 2013-08-30 14:20:29 +0000 |
commit | 24c47f9e205fb93237cb448d00884addc6850748 (patch) | |
tree | 16a9f77dfa88a4e960235838eb97546b981db960 | |
parent | cb576e4f2cea9392c6c7e9aae25e4ea8e9d654a1 (diff) |
* recog.c (verify_changes): Verify that changes[i].old is non-zero
before applying REG_P.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@202107 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/recog.c | 5 |
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b63c3201d29..6ca069bbf57 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 2d44416892e..690b20e4751 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)) |