Added an automatic cast to "std::ostream*" etc. from OStream. We then can
rework the hacks that had us passing OStream in. We pass in std::ostream*
instead, check for null, and then dispatch to the correct print() method.
llvm-svn: 32636
diff --git a/llvm/lib/Transforms/Utils/LowerSwitch.cpp b/llvm/lib/Transforms/Utils/LowerSwitch.cpp
index 2adfb3e..f0ae385 100644
--- a/llvm/lib/Transforms/Utils/LowerSwitch.cpp
+++ b/llvm/lib/Transforms/Utils/LowerSwitch.cpp
@@ -96,7 +96,8 @@
// operator<< - Used for debugging purposes.
//
-OStream& operator<<(OStream &O, const std::vector<LowerSwitch::Case> &C) {
+std::ostream& operator<<(std::ostream &O,
+ const std::vector<LowerSwitch::Case> &C) {
O << "[";
for (std::vector<LowerSwitch::Case>::const_iterator B = C.begin(),
@@ -107,6 +108,10 @@
return O << "]";
}
+OStream& operator<<(OStream &O, const std::vector<LowerSwitch::Case> &C) {
+ if (O.stream()) *O.stream() << C;
+ return O;
+}
// switchConvert - Convert the switch statement into a binary lookup of
// the case values. The function recursively builds this tree.