aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2003-06-11 18:04:32 -0700
committerRichard Henderson <rth@gcc.gnu.org>2003-06-11 18:04:32 -0700
commitd50ad6afbdb3bb9da874c4acfefd2c2f9498b932 (patch)
tree6f567b8c6b6aef114abfc67ec71ebb211f5b6893 /gcc
parente46f19c8487361f93b189b877e3dfd0a13ce2b93 (diff)
downloadgcc-d50ad6afbdb3bb9da874c4acfefd2c2f9498b932.zip
gcc-d50ad6afbdb3bb9da874c4acfefd2c2f9498b932.tar.gz
gcc-d50ad6afbdb3bb9da874c4acfefd2c2f9498b932.tar.bz2
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/stmt.c7
-rw-r--r--gcc/testsuite/gcc.dg/asm-7.c2
3 files changed, 11 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2f83413..ecbb5be 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2003-06-11 Richard Henderson <rth@redhat.com>
+
+ * stmt.c (expand_asm_operands): Don't warn for memories with
+ queued addresses.
+
2003-06-11 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC): Rewrite without
diff --git a/gcc/stmt.c b/gcc/stmt.c
index a69beb0..4561d72 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 007732d..42f40e7 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));