From: Richard Henderson Date: Thu, 12 Jun 2003 01:04:32 +0000 (-0700) Subject: stmt.c (expand_asm_operands): Don't warn for memories with queued addresses. X-Git-Tag: releases/gcc-3.4.0~5926 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d50ad6afbdb3bb9da874c4acfefd2c2f9498b932;p=thirdparty%2Fgcc.git stmt.c (expand_asm_operands): Don't warn for memories with queued addresses. * stmt.c (expand_asm_operands): Don't warn for memories with queued addresses. From-SVN: r67808 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2f83413c1aa3..ecbb5be3a9b0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2003-06-11 Richard Henderson + + * stmt.c (expand_asm_operands): Don't warn for memories with + queued addresses. + 2003-06-11 Kaz Kojima * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC): Rewrite without diff --git a/gcc/stmt.c b/gcc/stmt.c index a69beb069695..4561d722230b 100644 --- a/gcc/stmt.c +++ b/gcc/stmt.c @@ -1765,10 +1765,11 @@ expand_asm_operands (string, outputs, inputs, clobbers, vol, filename, line) else if (!allows_mem) warning ("asm operand %d probably doesn't match constraints", i + noutputs); - else if (GET_CODE (op) == MEM && MEM_VOLATILE_P (op)) + else if (GET_CODE (op) == MEM) { - /* We won't recognize volatile memory as available a - memory_operand at this point. Ignore it. */ + /* We won't recognize either volatile memory or memory + with a queued address as available a memory_operand + at this point. Ignore it: clearly this *is* a memory. */ } else { diff --git a/gcc/testsuite/gcc.dg/asm-7.c b/gcc/testsuite/gcc.dg/asm-7.c index 007732d57181..42f40e719f90 100644 --- a/gcc/testsuite/gcc.dg/asm-7.c +++ b/gcc/testsuite/gcc.dg/asm-7.c @@ -7,12 +7,14 @@ void test(void) register int r2; int i; static int m; + int *p; __asm__ ("" : : "m"(r)); /* { dg-warning "address of register" } */ __asm__ ("" : : "m"(i)); __asm__ ("" : : "m"(m)); __asm__ ("" : : "m"(0)); /* { dg-warning "input without lvalue" } */ __asm__ ("" : : "m"(i+1)); /* { dg-warning "input without lvalue" } */ + __asm__ ("" : : "m"(*p++)); __asm__ ("" : : "g"(r)); __asm__ ("" : : "g"(i));