https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80881
--- Comment #67 from Julian Waters <tanksherman27 at gmail dot com> --- Command line used in compiling the reproducer: xgcc -O2 -S -std=c11 -pedantic -Wpedantic tls.c The thing that has me puzzled is that the main differences between both patches are in the load of the primary thread pointer. The PLUS on the relocation - Which is the faulty part - Is pretty much exactly the same between both patches, even down to the special casing of the relocation in all the checking code. Oh well, I guess it's some internal gcc quirk