No, that only limits the compiler's ability to re-order data reads and writes to memory - it does not affect statements or executable code except indirectly (if code is needed to calculate a value that is written before the memory clobber, then of course that code needs to run before the clobber statement). See the URL I gave a couple of lines down for an example where even asm volatile("" ::: "memory") does not help.