On 05/08/2018 07:32 AM, Sebastian Huber wrote:
For example can I safely link objects produced with different C++ standard versions to produce an executable?
In general, no. A lot of header files enable and disable features based on the standards version, and that usually has an ABI impact.
I think for C, the inlining behavior changes significantly, which has ABI implications. See the -fgnu89-inline option (whose documentation apparently was not updated for C11). I'm not even sure that you can assume that if the code still links, it has the same behavior.
Thanks, Florian