From c924fd3edf7f80de43d12b52cfed04748c10b1a4 Mon Sep 17 00:00:00 2001 From: Ted Kremenek Date: Wed, 19 Sep 2007 21:26:49 +0000 Subject: [PATCH] Previously GraphWriter assumed operator*() for node_iterator always returned a reference type. This patch allows operator*() to return a non-reference type while still maintaining the old behavior when it does return a reference type. This patch was motivated when I tried to use "df_iterator" (see llvm/ADT/DepthFirstIterator.h) as a "node_iterator", as df_iterator does not return a reference type and thus we would get a compilation error when trying to take the address of a temporary. llvm-svn: 42151 --- include/llvm/Support/GraphWriter.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/include/llvm/Support/GraphWriter.h b/include/llvm/Support/GraphWriter.h index 08bc8613327..85cf71805fd 100644 --- a/include/llvm/Support/GraphWriter.h +++ b/include/llvm/Support/GraphWriter.h @@ -101,7 +101,11 @@ public: // Loop over the graph, printing it out... for (node_iterator I = GTraits::nodes_begin(G), E = GTraits::nodes_end(G); I != E; ++I) - writeNode(&*I); + writeNode(*I); + } + + void writeNode(NodeType& Node) { + writeNode(&Node); } void writeNode(NodeType *const *Node) {