diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2f83413c1aa30ff2dfad264bedbc39e12aeb04a6..ecbb5be3a9b0dc0e7d402ed04dab7e3cefbca636 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 a69beb0696954911c29ad7cc3e52423943ccf4ed..4561d722230ba935c7147fe802f92735ba1a7b40 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 007732d5718141cb22c277dd490e098902f15517..42f40e719f909e4d13fc0f376771d7d3a0b5f41c 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));