On Wed, Jul 30, 2025 at 01:07:32PM +0200, Jakub Jelinek wrote: > On Wed, Jul 30, 2025 at 06:52:40PM +0800, Yang Yujie wrote: > > I'm OK with your implementation. Just curious, do you mean that > > memcmp shouldn't be used on "(x)" at all? > > If there are any padding bits with undefined values, yes. > So, e.g. don't use memcmp on addresses of _BitInt vars on > x86_64/i686/aarch64 if it has any padding bits, don't use > memcmp on say addresses of long double on x86_64/i686/m68k > because it has 2 or 6 padding bytes in there, etc. > For some of it, one can use e.g. __builtin_clear_padding. > > Talking about that builtin, that makes me wonder if it shouldn't behave > differently for info.extended BITINT_TYPEs. > > clear_padding_bitint_needs_padding_p > right now returns false for info.extended, I guess that is ok for > s390x/arm32, but not for the loongarch some padding bits are initialized, > others undefined. > > So guess you need to add loongarch support in > clear_padding_bitint_needs_padding_p and in clear_padding_type, > if info.extended and info.limb_mode != info.abi_limb_mode treat the > most significant non-abi limb under the right condition as padding. > > Jakub
Ok, I will look into that. Thanks again for the review. Yujie