[llvm] [llvm] use 64-bit types for result of getDwarfRegNum (NFC) (PR #109494)
William G Hatch via llvm-commits
llvm-commits at lists.llvm.org
Mon Sep 23 12:22:43 PDT 2024
================
@@ -151,24 +151,28 @@ int MCRegisterInfo::getDwarfRegNum(MCRegister RegNum, bool isEH) const {
const DwarfLLVMRegPair *I = std::lower_bound(M, M+Size, Key);
if (I == M+Size || I->FromReg != RegNum)
return -1;
- return I->ToReg;
+ // Consumers need to be able to detect -1 and -2, but at various points
+ // the numbers move between unsigned and signed representations, as well as
+ // between 32- and 64-bit representations. We need to convert first to int
+ // before int64_t for proper sign handling.
+ return int64_t(int(I->ToReg));
----------------
willghatch wrote:
That might be good. I'm not certain there are not other negative values currently being used as signal values, but if that switch passes the tests then it's probably fine. I'm not certain that's necessarily better, though.
https://github.com/llvm/llvm-project/pull/109494
More information about the llvm-commits
mailing list