================
@@ -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

Reply via email to