https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100629
--- Comment #8 from Jonathan Wakely <redi at gcc dot gnu.org> --- I suspect that one file only sees a forward declaration of complement_names (without the abi_tag) and the other file sees the definition (with the abi_tag). The question is why the tag is on that type at all, but without preprocessed sources we can only guess.