https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69982
--- Comment #3 from Vincent Lefèvre <vincent-gcc at vinc17 dot net> --- (In reply to Jakub Jelinek from comment #2) > [...] and __thread uses the implementation namespace, [...] Is this really the implementation namespace? The C standard says: "All identifiers that begin with an underscore and either an uppercase letter or another underscore are always reserved for any use." so that there doesn't seem to be a difference between __thread (underscore + underscore) and _Thread_local (underscore + uppercase letter). What if the C committee decided to choose __thread instead of _Thread_local?