* stmt.c (expand_asm_operands): Avoid calling force_reg on BLKmode
operands.
* gcc.dg/pr8788-1.c: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@99422
138bc75d-0d04-0410-961f-
82ee72b054a4
+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.
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",
+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
--- /dev/null
+/* 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)
+ );
+}
+