================
@@ -142,19 +142,25 @@ std::optional<int> tryExpandAsInteger(StringRef Macro,
const Preprocessor &PP) {
if (InvalidSpelling)
return std::nullopt;
- llvm::APInt IntValue;
+ llvm::APSInt IntValue(0, true);
constexpr unsigned AutoSenseRadix = 0;
- if (ValueStr.getAsInteger(AutoSenseRadix, IntValue))
+ if (ValueStr.getAsInteger(AutoSenseRadix,
+ static_cast<llvm::APInt &>(IntValue)))
----------------
ColinKinloch wrote:
`StringRef::getAsInteger` has two definitions, in one the `Result` argument is
a `APInt &`, the other is a template. Without the `static_cast` the compilation
fails with:
```
llvm-project/llvm/include/llvm/ADT/StringRef.h:485:13: error: invalid
‘static_cast’ from type ‘llvm::APSInt’ to type ‘long long unsigned int’
```
https://github.com/llvm/llvm-project/pull/168632
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits