Comment by account42
GCC is the one defining the effective ABI here so LLVM was always buggy no matter what the spec said / didn't say.
GCC is the one defining the effective ABI here so LLVM was always buggy no matter what the spec said / didn't say.
In theory. In practice the vast majority of Linux userland programs are compiled with GCC so unless GCC did something particularly braindead they are unlikely to break compatibility with that and so it's the ABI everyone needs to target. Which is also what happened in this case: The standard was updated to mandate the GCC behavior.
Actually not, the ABI is a cross vendor initiative.