From: Arnaud A. de Grandmaison Date: Tue, 21 Oct 2014 16:24:21 +0000 (+0000) Subject: [PBQP] Check for out of bound access in DEBUG builds X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0dea74b06930ef51704ef643dee4d4bd52789bc8;p=platform%2Fupstream%2Fllvm.git [PBQP] Check for out of bound access in DEBUG builds It is just too easy to use a virtual register intead of a NodeId without a compiler warning. This does not fix the fundamental problem, i.e. both have the same underlying types, but increases the likelyhood to detect it. llvm-svn: 220303 --- diff --git a/llvm/include/llvm/CodeGen/PBQP/Graph.h b/llvm/include/llvm/CodeGen/PBQP/Graph.h index ca461b9..3b826d6 100644 --- a/llvm/include/llvm/CodeGen/PBQP/Graph.h +++ b/llvm/include/llvm/CodeGen/PBQP/Graph.h @@ -190,8 +190,14 @@ namespace PBQP { // ----- INTERNAL METHODS ----- - NodeEntry& getNode(NodeId NId) { return Nodes[NId]; } - const NodeEntry& getNode(NodeId NId) const { return Nodes[NId]; } + NodeEntry &getNode(NodeId NId) { + assert(NId < Nodes.size() && "Out of bound NodeId"); + return Nodes[NId]; + } + const NodeEntry &getNode(NodeId NId) const { + assert(NId < Nodes.size() && "Out of bound NodeId"); + return Nodes[NId]; + } EdgeEntry& getEdge(EdgeId EId) { return Edges[EId]; } const EdgeEntry& getEdge(EdgeId EId) const { return Edges[EId]; }