Index: llvm/trunk/include/llvm/Support/GenericDomTree.h =================================================================== --- llvm/trunk/include/llvm/Support/GenericDomTree.h +++ llvm/trunk/include/llvm/Support/GenericDomTree.h @@ -351,7 +351,7 @@ /// block. This is the same as using operator[] on this class. The result /// may (but is not required to) be null for a forward (backwards) /// statically unreachable block. - DomTreeNodeBase *getNode(NodeT *BB) const { + DomTreeNodeBase *getNode(const NodeT *BB) const { auto I = DomTreeNodes.find(BB); if (I != DomTreeNodes.end()) return I->second.get(); @@ -359,7 +359,9 @@ } /// See getNode. - DomTreeNodeBase *operator[](NodeT *BB) const { return getNode(BB); } + DomTreeNodeBase *operator[](const NodeT *BB) const { + return getNode(BB); + } /// getRootNode - This returns the entry node for the CFG of the function. If /// this tree represents the post-dominance relations for a function, however, Index: llvm/trunk/unittests/IR/DominatorTreeTest.cpp =================================================================== --- llvm/trunk/unittests/IR/DominatorTreeTest.cpp +++ llvm/trunk/unittests/IR/DominatorTreeTest.cpp @@ -776,7 +776,9 @@ PDT.insertEdge(From, To); EXPECT_TRUE(PDT.verify()); EXPECT_TRUE(PDT.getRoots().size() == 2); - EXPECT_NE(PDT.getNode(B.getOrAddBlock("5")), nullptr); + // Make sure we can use a const pointer with getNode. + const BasicBlock *BB5 = B.getOrAddBlock("5"); + EXPECT_NE(PDT.getNode(BB5), nullptr); } TEST(DominatorTree, InsertMixed) {