[clang] [llvm] [Clang][ABI][X86] Do not emit zeroext/signext for return values (PR #232729)
Phoebe Wang via cfe-commits
cfe-commits at lists.llvm.org
Sun Oct 18 02:36:59 PDT 2026
phoebewang wrote:
> except for `bool` (which stays zeroext, as it requires zero-extension to 8 bits) and Darwin.
Does i2~i7 follow the same rule?
> However, this _does_ change behavior for non-i8/i16 types. Specifically, it changes `_BitInt` types to have unspecified high bits, instead of performing a partial sign/zero extension to 8, 16 or 32 bits.
Does this change i32/i64 type or not? Is it limited to `_BitInt(N)` where N < 32?
> Because the only case with actual behavior change is `_BitInt`, I'm not bothering with `-fclang-abi-compat` for this change. We explicitly document `_BitInt` as not ABI stable at this point.
Sounds like if we exclude `_BitInt` type in the patch, it can be an NFC change?
> This change does not affect handling of arguments.
What about when passing the result immediately as an argument?
https://github.com/llvm/llvm-project/pull/232729
More information about the cfe-commits
mailing list