https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87692
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- I think this needs to be specified by the ABI before we can change it, and you'd still you have a backwards compatibility problem. If the function is inline and included in two translation units, the compilers of those two TUs need to agree to only use one guard variable.