[Bug target/125838] aarch64: Implementation divergence in vendor::preserve_none with variadic calls.
iains at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Jun 16 19:46:42 GMT 2026
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125838
--- Comment #2 from Iain Sandoe <iains at gcc dot gnu.org> ---
(In reply to Drea Pinski from comment #1)
> >(I do not remember how to disable IPO on clang).
>
> clang does not have any attribute yet (the underlying LLVM attribute is not
> there either yet, https://github.com/llvm/llvm-project/pull/203304 adds it
> but it is under discussion still); you can disable inlining in a similar way
> as GCC (via noinline attribute or -fno-inlining).
yeah .. I have that .. but O > 0 still seems to do things .. so needs to be
avoided to minimise confusion when looking at the generated code.
> It was noted that the ABI of preserve_none is consider unstable in clang so
> maybe there is no right answer.
> from https://clang.llvm.org/docs/AttributeReference.html#preserve-none :
> This attribute doesn’t impact floating-point registers. preserve_none’s ABI
> is still unstable, and may be changed in the future.
I read that, but ISTM that it's already in the wild and from what I hear is
being used by python .. so .. we might be in a tricky place already.
Not that I have a great opinion on what "right answer" would be ... the
observations were just based on looking a the stack usage for the example
attached.
More information about the Gcc-bugs
mailing list