-Wdeprecated clean by making LogBuilder move constructible so it can be returned...
authorDavid Blaikie <dblaikie@gmail.com>
Wed, 5 Aug 2015 21:06:50 +0000 (21:06 +0000)
committerDavid Blaikie <dblaikie@gmail.com>
Wed, 5 Aug 2015 21:06:50 +0000 (21:06 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@244129 91177308-0d34-0410-b5e6-96231b3b80d8

tools/llvm-diff/DiffLog.cpp
tools/llvm-diff/DiffLog.h

index 24a1b08..ed86058 100644 (file)
@@ -20,7 +20,8 @@
 using namespace llvm;
 
 LogBuilder::~LogBuilder() {
 using namespace llvm;
 
 LogBuilder::~LogBuilder() {
-  consumer.logf(*this);
+  if (consumer)
+    consumer->logf(*this);
 }
 
 StringRef LogBuilder::getFormat() const { return Format; }
 }
 
 StringRef LogBuilder::getFormat() const { return Format; }
index 8eb53ff..8f28461 100644 (file)
@@ -27,7 +27,7 @@ namespace llvm {
 
   /// A temporary-object class for building up log messages.
   class LogBuilder {
 
   /// A temporary-object class for building up log messages.
   class LogBuilder {
-    Consumer &consumer;
+    Consumer *consumer;
 
     /// The use of a stored StringRef here is okay because
     /// LogBuilder should be used only as a temporary, and as a
 
     /// The use of a stored StringRef here is okay because
     /// LogBuilder should be used only as a temporary, and as a
@@ -38,8 +38,12 @@ namespace llvm {
     SmallVector<Value*, 4> Arguments;
 
   public:
     SmallVector<Value*, 4> Arguments;
 
   public:
-    LogBuilder(Consumer &c, StringRef Format)
-      : consumer(c), Format(Format) {}
+    LogBuilder(Consumer &c, StringRef Format) : consumer(&c), Format(Format) {}
+    LogBuilder(LogBuilder &&L)
+        : consumer(L.consumer), Format(L.Format),
+          Arguments(std::move(L.Arguments)) {
+      L.consumer = nullptr;
+    }
 
     LogBuilder &operator<<(Value *V) {
       Arguments.push_back(V);
 
     LogBuilder &operator<<(Value *V) {
       Arguments.push_back(V);