Documentation for
-fabi-version
says this[only part here]:
[...]
Version 11, which first appeared in G++ 7, corrects the mangling of sizeof... expressions and operator names. For multiple entities with the same name within a function, that are declared in different scopes, the mangling now changes starting with the twelfth occurrence. It also implies -fnew-inheriting-ctors.Version 12, which first appeared in G++ 8, corrects the calling conventions for empty classes on the x86_64 target and for classes with only deleted copy/move constructors. It accidentally changes the calling convention for classes with a deleted copy constructor and a trivial move constructor.
Version 13, which first appeared in G++ 8.2, fixes the accidental change in version 12.
Version 14, which first appeared in G++ 10, corrects the mangling of the nullptr expression.
Version 15, which first appeared in G++ 11, changes the mangling of __ alignof __ to be distinct from that of alignof, and dependent operator names.
My question is do this mangling changes(so not for example calling conventions change, but changes in Version14 and Version15) affect ABI compatability, of will during link time linker just pick one and everything will be great?
note: presume I am using those things, although I doubt that most people use those in API boundaries.