re PR rtl-optimization/21299 (internal error on invalid asm statement)
PR rtl-optimization/21299 * reload1.c (reload): Purge invalid ASMs in the final pass. From-SVN: r117061
This commit is contained in:
parent
9f0b9edcd7
commit
d63e138968
@ -1,3 +1,8 @@
|
|||||||
|
2006-09-19 Steven Bosscher <steven@gcc.gnu.org>
|
||||||
|
|
||||||
|
PR rtl-optimization/21299
|
||||||
|
* reload1.c (reload): Purge invalid ASMs in the final pass.
|
||||||
|
|
||||||
2006-09-19 Steve Ellcey <sje@cup.hp.com>
|
2006-09-19 Steve Ellcey <sje@cup.hp.com>
|
||||||
|
|
||||||
PR 28490
|
PR 28490
|
||||||
|
@ -1167,6 +1167,20 @@ reload (rtx first, int global)
|
|||||||
{
|
{
|
||||||
rtx *pnote;
|
rtx *pnote;
|
||||||
|
|
||||||
|
/* Clean up invalid ASMs so that they don't confuse later passes.
|
||||||
|
See PR 21299. */
|
||||||
|
if (asm_noperands (PATTERN (insn)) >= 0)
|
||||||
|
{
|
||||||
|
extract_insn (insn);
|
||||||
|
if (!constrain_operands (1))
|
||||||
|
{
|
||||||
|
error_for_asm (insn,
|
||||||
|
"%<asm%> operand has impossible constraints");
|
||||||
|
delete_insn (insn);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (CALL_P (insn))
|
if (CALL_P (insn))
|
||||||
replace_pseudos_in (& CALL_INSN_FUNCTION_USAGE (insn),
|
replace_pseudos_in (& CALL_INSN_FUNCTION_USAGE (insn),
|
||||||
VOIDmode, CALL_INSN_FUNCTION_USAGE (insn));
|
VOIDmode, CALL_INSN_FUNCTION_USAGE (insn));
|
||||||
|
Loading…
Reference in New Issue
Block a user