diff options
-rw-r--r-- | gcc/recog.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/recog.c b/gcc/recog.c index 3b7dab3..a8d06bb 100644 --- a/gcc/recog.c +++ b/gcc/recog.c @@ -934,10 +934,13 @@ general_operand (op, mode) if (code == MEM) { register rtx y = XEXP (op, 0); + if (! volatile_ok && MEM_VOLATILE_P (op)) return 0; + if (GET_CODE (y) == ADDRESSOF) return 1; + /* Use the mem's mode, since it will be reloaded thus. */ mode = GET_MODE (op); GO_IF_LEGITIMATE_ADDRESS (mode, y, win); |