[MIPS GlobalISel] Silence uninitialized variable warning
authorBenjamin Kramer <benny.kra@googlemail.com>
Mon, 11 Mar 2019 10:39:15 +0000 (10:39 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Mon, 11 Mar 2019 10:39:15 +0000 (10:39 +0000)
The control flow here cannot ever use the uninitialized value, but it's
too hard for the compiler to figure that out. Clang warns:

llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp:2600:28: error: variable 'CarrySum' is used uninitialized whenever 'for' loop exits because its condition is false [-Werror,-Wsometimes-uninitialized]
      for (unsigned i = 2; i < Factors.size(); ++i)
                           ^~~~~~~~~~~~~~~~~~
llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp:2604:26: note: uninitialized use occurs here
    CarrySumPrevDstIdx = CarrySum;
                         ^~~~~~~~
llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp:2600:28: note: remove the condition if it is always true
      for (unsigned i = 2; i < Factors.size(); ++i)
                           ^~~~~~~~~~~~~~~~~~
llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp:2583:22: note: initialize the variable 'CarrySum' to silence this warning
    unsigned CarrySum;
                     ^
                      = 0

llvm-svn: 355818

llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp

index 8405fe2..61b6bc5 100644 (file)
@@ -2581,7 +2581,7 @@ void LegalizerHelper::multiplyRegisters(SmallVectorImpl<unsigned> &DstRegs,
       Factors.push_back(CarrySumPrevDstIdx);
     }
 
-    unsigned CarrySum;
+    unsigned CarrySum = 0;
     // Add all factors and accumulate all carries into CarrySum.
     if (DstIdx != DstParts - 1) {
       MachineInstrBuilder Uaddo =