https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95918
--- Comment #8 from David Edelsohn <dje at gcc dot gnu.org> --- It uses . where it wants to consume a quotation mark ("). Because the BE/LE difference is flipping characters, would it negate the purpose of the test to check for one or zero characters? ! { dg-final { scan-tree-dump { \(\*var\.str2\)\[1\]{lb: 1 sz: 4} = .d?\\x00\\x00d?.\[1\]{lb: 1 sz: 4};} "original" } } In other words, test for the "d" or not at one end, and "d" or not at the other end. And the next test would become ! { dg-final { scan-tree-dump " __builtin_memmove \(\(void \*\) &\(\*var. str2\)\[2\]{lb: 1 sz: 4}, \(void \*\\) &.e?\\x00\\x00\\x00[ef]\\x00 \\x00f?.\[1\]{lb: 1 sz: 4}, 8\);" "original" } } Or is a possible failure that the endian was flipped?