mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-22 11:31:05 +08:00
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:
parent
65ab381cbf
commit
4bbcb8fcd4
@ -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.
|
||||
|
@ -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",
|
||||
|
@ -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
|
||||
|
20
gcc/testsuite/gcc.dg/pr8788-1.c
Normal file
20
gcc/testsuite/gcc.dg/pr8788-1.c
Normal 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)
|
||||
);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user