[SILoadStoreOptimizer] Use std::abs to avoid truncation.
authorFlorian Hahn <flo@fhahn.com>
Sat, 15 Dec 2018 01:32:58 +0000 (01:32 +0000)
committerFlorian Hahn <flo@fhahn.com>
Sat, 15 Dec 2018 01:32:58 +0000 (01:32 +0000)
Using regular abs() causes the following warning

error: absolute value function 'abs' given an argument of type 'int64_t' (aka 'long') but has parameter of type 'int' which may cause truncation of value [-Werror,-Wabsolute-value]
        (uint32_t)abs(Dist) > MaxDist) {
                  ^
lib/Target/AMDGPU/SILoadStoreOptimizer.cpp:1369:19: note: use function 'std::abs' instead

which causes a bot to fail:
http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux/builds/18284/steps/bootstrap%20clang/logs/stdio

llvm-svn: 349224

llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp

index d755f76..9f3983c 100644 (file)
@@ -1366,8 +1366,8 @@ bool SILoadStoreOptimizer::promoteConstantOffsetToImm(
     AM.HasBaseReg = true;
     AM.BaseOffs = Dist;
     if (TLI->isLegalGlobalAddressingMode(AM) &&
-        (uint32_t)abs(Dist) > MaxDist) {
-      MaxDist = abs(Dist);
+        (uint32_t)std::abs(Dist) > MaxDist) {
+      MaxDist = std::abs(Dist);
 
       AnchorAddr = MAddrNext;
       AnchorInst = &MINext;