[clang] [clang][Interp] IntegralAP zero-init (PR #68081)
Timm Baeder via cfe-commits
cfe-commits at lists.llvm.org
Thu Oct 12 23:14:42 PDT 2023
================
@@ -100,12 +100,13 @@ template <bool Signed> class IntegralAP final {
}
static IntegralAP from(const Boolean &B) {
assert(false);
- return IntegralAP::zero();
+ return IntegralAP::zero(1);
}
- static IntegralAP zero() {
- assert(false);
- return IntegralAP(0);
+ static IntegralAP zero(int32_t BitWidth) {
+ APSInt V =
+ APSInt(APInt(BitWidth, static_cast<int64_t>(0), Signed), !Signed);
----------------
tbaederr wrote:
I keep having to add this cast to `int64_t` because some Windows builders will otherwise complain because the `APInt` class has two constructors it can take:
```
APInt (unsigned numBits, uint64_t val, bool isSigned=false)
APInt (unsigned numBits, unsigned numWords, const uint64_t bigVal[])
```
and MSVC doesn't know which one to take.
https://github.com/llvm/llvm-project/pull/68081
More information about the cfe-commits
mailing list