re PR inline-asm/8788 (ICE in emit_move_insn, at expr.c:3089)

PR inline-asm/8788
	* stmt.c (expand_asm_operands): Avoid calling force_reg on BLKmode
	operands.

	* gcc.dg/pr8788-1.c: New testcase.

From-SVN: r99422
This commit is contained in:
Roger Sayle 2005-05-09 05:15:50 +00:00 committed by Roger Sayle
parent 65ab381cbf
commit 4bbcb8fcd4
4 changed files with 32 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2005-05-08 Roger Sayle <roger@eyesopen.com>
PR inline-asm/8788
* stmt.c (expand_asm_operands): Avoid calling force_reg on BLKmode
operands.
2005-05-08 Richard Henderson <rth@redhat.com>
* config/alpha/alpha.c (adjust_address): Fix typo last change.

View File

@ -877,7 +877,7 @@ expand_asm_operands (tree string, tree outputs, tree inputs,
if (asm_operand_ok (op, constraint) <= 0)
{
if (allows_reg)
if (allows_reg && TYPE_MODE (type) != BLKmode)
op = force_reg (TYPE_MODE (type), op);
else if (!allows_mem)
warning (0, "asm operand %d probably doesn%'t match constraints",

View File

@ -1,3 +1,8 @@
2005-05-08 Roger Sayle <roger@eyesopen.com>
PR inline-asm/8788
* gcc.dg/pr8788-1.c: New testcase.
2005-05-08 Richard Sandiford <rsandifo@redhat.com>
PR target/21416

View File

@ -0,0 +1,20 @@
/* PR inline-asm/8788 */
/* { dg-do compile } */
/* { dg-options "-O2" } */
typedef struct {
long x[6];
} myjmp_buf;
typedef struct {
myjmp_buf regs;
} my_stack;
void switch_to_stack (my_stack *stack){
asm ( /* { dg-error "impossible constraint" } */
/* { dg-warning "asm operand 1" "asm operand 1" { target *-*-* } 14 } */
"\n"
: "+r" (stack->regs)
);
}