Skip to content

Commit f5b4e20

Browse files
[llvm][AArch64] Fix Arm 32 bit build warnings (#90862)
#84173 added uses of std::labs on an int64_t which leads to this warning on Arm 32 bit: ``` /home/david.spickett/llvm-project/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:16655:12: warning: absolute value function 'labs' given an argument of type 'long long' but has parameter of type 'long' which may cause truncation of value [-Wabsolute-value] return std::labs(Imm / 4) <= 16; ^ /home/david.spickett/llvm-project/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:16655:12: note: use function 'std::abs' instead return std::labs(Imm / 4) <= 16; ^~~~~~~~~ std::abs ``` Since int64_t is "long long" on Arm, not "long". Use std::abs instead since it has versions for "long" and "long long", we'll pick up the right one at compile time (https://en.cppreference.com/w/cpp/numeric/math/abs).
1 parent 646559e commit f5b4e20

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

llvm/lib/Target/AArch64/AArch64ISelLowering.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16649,13 +16649,13 @@ bool AArch64TargetLowering::isLegalAddScalableImmediate(int64_t Imm) const {
1664916649

1665016650
// inch|dech
1665116651
if (Imm % 8 == 0)
16652-
return std::labs(Imm / 8) <= 16;
16652+
return std::abs(Imm / 8) <= 16;
1665316653
// incw|decw
1665416654
if (Imm % 4 == 0)
16655-
return std::labs(Imm / 4) <= 16;
16655+
return std::abs(Imm / 4) <= 16;
1665616656
// incd|decd
1665716657
if (Imm % 2 == 0)
16658-
return std::labs(Imm / 2) <= 16;
16658+
return std::abs(Imm / 2) <= 16;
1665916659

1666016660
return false;
1666116661
}

0 commit comments

Comments
 (0)