https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115056
--- Comment #5 from Dale Weiler <weilercdale at gmail dot com> --- I should note that there is a byte in-between these two pieces of code I removed for (; j < i; j++) block.as_bytes[j] = argv[0][j]; block.as_bytes[j] = 0x01; // I removed this line while (++j & 7) block.as_bytes[j] = 0; Just to make the repro smaller, but I guess that causes that one byte to be uninitialized in this case. Adding it back doesn't change anything, but it should be noted it exists here.