https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64567
--- Comment #2 from Rasmus Villemoes <rv at rasmusvillemoes dot dk> --- (In reply to Andreas Schwab from comment #1) > This transformation is incorrect if the lvalue may be pointing to a > read-only object. True. And one may also incur an extra cache penalty if the cache line containing foo was already held shared but not exclusive.