(In reply to Dirk Mueller from comment #20) > if I understand that correctly, this is a 32 byte wide load. so we're > declaring 1 byte, we're reading 32byte. Actually, on a second thought, if we declare char* then that might happen to work, because char can alias everything, so the compiler has to play safe and basically do an all memory clobber. the gcc documentation however clearly advises against this, see: https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html (search for "repe scasb" and see how it declares a variadic size array of char as memory clobber instead)