[PATCH] D19968: [scan-build] fix warnings emitted on LLVM Hexagon code base
Apelete Seketeli via llvm-commits
llvm-commits at lists.llvm.org
Thu May 5 06:21:13 PDT 2016
apelete created this revision.
apelete added a reviewer: kparzysz.
apelete added a subscriber: llvm-commits.
This path fixes the following warnings that were reported while
running Clang Static Analyzer on Clang code base:
Logic error: called C++ object pointer is null, on files
- lib/Target/Hexagon/RDFGraph.cpp
- lib/Target/Hexagon/HexagonCFGOptimizer.cpp.
Logic error: branch condition evaluates to a garbage value, on file:
- lib/Target/Hexagon/HexagonInstrInfo.cpp.
Signed-off-by: Apelete Seketeli <apelete at seketeli.net>
http://reviews.llvm.org/D19968
Files:
lib/Target/Hexagon/HexagonCFGOptimizer.cpp
lib/Target/Hexagon/HexagonInstrInfo.cpp
lib/Target/Hexagon/RDFGraph.cpp
Index: lib/Target/Hexagon/RDFGraph.cpp
===================================================================
--- lib/Target/Hexagon/RDFGraph.cpp
+++ lib/Target/Hexagon/RDFGraph.cpp
@@ -1564,6 +1564,7 @@
// Push block delimiters.
markBlock(BA.Id, DefM);
+ assert(BA.Addr && "block node address is needed to create a data-flow link");
// For each non-phi instruction in the block, link all the defs and uses
// to their reaching defs. For any member of the block (including phis),
// push the defs on the corresponding stacks.
Index: lib/Target/Hexagon/HexagonInstrInfo.cpp
===================================================================
--- lib/Target/Hexagon/HexagonInstrInfo.cpp
+++ lib/Target/Hexagon/HexagonInstrInfo.cpp
@@ -1301,7 +1301,7 @@
// Keep a flag for upto 4 operands in the instructions, to indicate if
// that operand has been constant extended.
- bool OpCExtended[4];
+ bool OpCExtended[4] = {false};
if (NumOperands > 4)
NumOperands = 4;
Index: lib/Target/Hexagon/HexagonCFGOptimizer.cpp
===================================================================
--- lib/Target/Hexagon/HexagonCFGOptimizer.cpp
+++ lib/Target/Hexagon/HexagonCFGOptimizer.cpp
@@ -180,6 +180,7 @@
// Ensure that BB2 has one instruction -- an unconditional jump.
if ((LayoutSucc->size() == 1) &&
IsUnconditionalJump(LayoutSucc->front().getOpcode())) {
+ assert(JumpAroundTarget && "jump target is needed to process second basic block");
MachineBasicBlock* UncondTarget =
LayoutSucc->front().getOperand(0).getMBB();
// Check if the layout successor of BB2 is BB3.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D19968.56276.patch
Type: text/x-patch
Size: 1681 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160505/cf273b70/attachment.bin>
More information about the llvm-commits
mailing list