aboutsummaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authorH.J. Lu <hjl@gcc.gnu.org>2009-06-27 09:43:28 -0700
committerH.J. Lu <hjl@gcc.gnu.org>2009-06-27 09:43:28 -0700
commit2ca57608ece924ecf70b9a7216b2deab069e33c2 (patch)
tree840732f49456407fe8300cf2e0a30a24819d5a6d /gcc/config
parent8122ccf175f39e9db97f39d4bd700845bd28f714 (diff)
downloadgcc-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.c30
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)));
+ }
}
}