https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109750
--- Comment #5 from jim.gray at atos dot net --- I don't know if it makes any difference, but I ran with an older version of the Intel C++ compiler on Linux, with the results below: Good output when compiling with the Intel C++ compiler on CentOS Linux release 7.7.1908 [builder@7f936516e827 ~]$ icc --version icc (ICC) 17.0.2 20170213 Copyright (C) 1985-2017 Intel Corporation. All rights reserved. [builder@af80ebc5f176 gccbug]$ icc gccbug.cpp [builder@af80ebc5f176 gccbug]$ [builder@af80ebc5f176 gccbug]$ ls -l total 28 -rwxrwxr-x 1 builder builder 22592 May 5 18:02 a.out -rw-rw-r-- 1 builder builder 3553 May 5 18:02 gccbug.cpp [builder@af80ebc5f176 gccbug]$ [builder@af80ebc5f176 gccbug]$ ./a.out Example showing GCC bug: Source = 000000020000 Target = 000000000200 Target = 020000000200 Example showing workaround for bug: Source = 000000020000 Target = 000000000200 Temp = 000000020000 Temp = 020000000000 Target = 020000000200 [builder@af80ebc5f176 gccbug]$