diff options
author | H.J. Lu <hjl@gcc.gnu.org> | 2009-06-27 09:43:28 -0700 |
---|---|---|
committer | H.J. Lu <hjl@gcc.gnu.org> | 2009-06-27 09:43:28 -0700 |
commit | 2ca57608ece924ecf70b9a7216b2deab069e33c2 (patch) | |
tree | 840732f49456407fe8300cf2e0a30a24819d5a6d /gcc/config | |
parent | 8122ccf175f39e9db97f39d4bd700845bd28f714 (diff) | |
download | gcc-2ca57608ece924ecf70b9a7216b2deab069e33c2.zip gcc-2ca57608ece924ecf70b9a7216b2deab069e33c2.tar.gz gcc-2ca57608ece924ecf70b9a7216b2deab069e33c2.tar.bz2 |
re PR target/40489 (gcc.dg/builtin-unreachable-3.c doesn't work on ia64)
2009-06-27 H.J. Lu <hongjiu.lu@intel.com>
PR target/40489
* config/ia64/ia64.c (ia64_reorg): Check NULL insn.
From-SVN: r149014
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/ia64/ia64.c | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c index f9b8460..939ed54 100644 --- a/gcc/config/ia64/ia64.c +++ b/gcc/config/ia64/ia64.c @@ -9239,20 +9239,24 @@ ia64_reorg (void) insn = get_last_insn (); if (! INSN_P (insn)) insn = prev_active_insn (insn); - /* Skip over insns that expand to nothing. */ - while (GET_CODE (insn) == INSN && get_attr_empty (insn) == EMPTY_YES) - { - if (GET_CODE (PATTERN (insn)) == UNSPEC_VOLATILE - && XINT (PATTERN (insn), 1) == UNSPECV_INSN_GROUP_BARRIER) - saw_stop = 1; - insn = prev_active_insn (insn); - } - if (GET_CODE (insn) == CALL_INSN) + if (insn) { - if (! saw_stop) - emit_insn (gen_insn_group_barrier (GEN_INT (3))); - emit_insn (gen_break_f ()); - emit_insn (gen_insn_group_barrier (GEN_INT (3))); + /* Skip over insns that expand to nothing. */ + while (GET_CODE (insn) == INSN + && get_attr_empty (insn) == EMPTY_YES) + { + if (GET_CODE (PATTERN (insn)) == UNSPEC_VOLATILE + && XINT (PATTERN (insn), 1) == UNSPECV_INSN_GROUP_BARRIER) + saw_stop = 1; + insn = prev_active_insn (insn); + } + if (GET_CODE (insn) == CALL_INSN) + { + if (! saw_stop) + emit_insn (gen_insn_group_barrier (GEN_INT (3))); + emit_insn (gen_break_f ()); + emit_insn (gen_insn_group_barrier (GEN_INT (3))); + } } } |