================ @@ -548,10 +548,22 @@ class TargetInfo : public TransferrableTargetInfo, /// getBitIntAlign/Width - Return aligned size of '_BitInt' and /// 'unsigned _BitInt' for this target, in bits. + /// Note: 64-bit _BitInt types get special handling to ensure consistent + /// alignment with long long types, particularly important for x86-32 targets. unsigned getBitIntWidth(unsigned NumBits) const { return llvm::alignTo(NumBits, getBitIntAlign(NumBits)); } unsigned getBitIntAlign(unsigned NumBits) const { + // Special case: 64-bit _BitInt should have the same alignment behavior as long long ---------------- erichkeane wrote:
Based on the title, this doesn't seem right. We probably want/need some sort of target specific code, but this works for ALL code. AND checks bit-size, and not the size of the types. This is just not the right approach at all. https://github.com/llvm/llvm-project/pull/154401 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits