From 55872bf8a03c2056150a067d851086db2edc5ff8 Mon Sep 17 00:00:00 2001 From: Krzysztof Parzyszek Date: Thu, 5 May 2016 22:00:44 +0000 Subject: [PATCH] [scan-build] fix warnings emitted on LLVM Hexagon code base Patch by Apelete Seketeli. Differential Revision: http://reviews.llvm.org/D19968 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268691 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/Hexagon/HexagonCFGOptimizer.cpp | 1 + lib/Target/Hexagon/HexagonInstrInfo.cpp | 2 +- lib/Target/Hexagon/RDFGraph.cpp | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/Target/Hexagon/HexagonCFGOptimizer.cpp b/lib/Target/Hexagon/HexagonCFGOptimizer.cpp index eb56ae7ffb0..78d64151b0b 100644 --- a/lib/Target/Hexagon/HexagonCFGOptimizer.cpp +++ b/lib/Target/Hexagon/HexagonCFGOptimizer.cpp @@ -180,6 +180,7 @@ bool HexagonCFGOptimizer::runOnMachineFunction(MachineFunction &Fn) { // 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. diff --git a/lib/Target/Hexagon/HexagonInstrInfo.cpp b/lib/Target/Hexagon/HexagonInstrInfo.cpp index 0ae999239a4..7285f698e30 100644 --- a/lib/Target/Hexagon/HexagonInstrInfo.cpp +++ b/lib/Target/Hexagon/HexagonInstrInfo.cpp @@ -1301,7 +1301,7 @@ bool HexagonInstrInfo::isPredicable(MachineInstr &MI) const { // 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; diff --git a/lib/Target/Hexagon/RDFGraph.cpp b/lib/Target/Hexagon/RDFGraph.cpp index 029d1e9c24e..ce3cf7b7611 100644 --- a/lib/Target/Hexagon/RDFGraph.cpp +++ b/lib/Target/Hexagon/RDFGraph.cpp @@ -1564,6 +1564,7 @@ void DataFlowGraph::linkBlockRefs(DefStackMap &DefM, NodeAddr BA) { // 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. -- 2.50.1