Commit a426543a by Vladimir Makarov Committed by Vladimir Makarov

re PR inline-asm/85030 (internal compiler error: Floating point exception (validate_subreg()))

2018-03-23  Vladimir Makarov  <vmakarov@redhat.com>

	PR inline-asm/85030
	* lra-constraints.c (process_alt_operands): Don't match BLKmode
	and non BLKmode operands.

2018-03-23  Vladimir Makarov  <vmakarov@redhat.com>

	PR inline-asm/85030
	* testsuite/gcc.target/i386/pr85030.c: New.

From-SVN: r258820
parent 63028caa
2018-03-23 Vladimir Makarov <vmakarov@redhat.com>
PR inline-asm/85030
* lra-constraints.c (process_alt_operands): Don't match BLKmode
and non BLKmode operands.
2018-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
PR target/85026
......
......@@ -2118,6 +2118,14 @@ process_alt_operands (int only_alternative)
GET_MODE_SIZE (biggest_mode[nop])))
break;
/* Don't match wrong asm insn operands for proper
diagnostic later. */
if (INSN_CODE (curr_insn) < 0
&& (curr_operand_mode[m] == BLKmode
|| curr_operand_mode[nop] == BLKmode)
&& curr_operand_mode[m] != curr_operand_mode[nop])
break;
this_alternative_matches = m;
m_hregno = get_hard_regno (*curr_id->operand_loc[m], false);
/* We are supposed to match a previous operand.
......
2018-03-23 Vladimir Makarov <vmakarov@redhat.com>
PR inline-asm/85030
* testsuite/gcc.target/i386/pr85030.c: New.
2018-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
PR target/85026
......
/* { dg-do compile } */
/* { dg-options "-O1" } */
struct S { int c, *b, *e; };
void
foo ()
{
struct S a;
asm volatile ("" : "=rm" (a) : "0" (1)); /* { dg-error "inconsistent operand constraints in an 'asm'" } */
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment