[llvm] r232268 - Recover the ability to 'b CheckFailed' after r231577

Duncan P. N. Exon Smith dexonsmith at apple.com
Sat Mar 14 09:47:38 PDT 2015


Author: dexonsmith
Date: Sat Mar 14 11:47:37 2015
New Revision: 232268

URL: http://llvm.org/viewvc/llvm-project?rev=232268&view=rev
Log:
Recover the ability to 'b CheckFailed' after r231577

Given that the stated purpose of `CheckFailed()` is to provide a nice
spot for a breakpoint, it'd be nice not to have to use a regex to break
on it.  Recover the ability to simply use `b CheckFailed` by
specializing the message-only version, and by changing the variadic
version to call into the message-only version.

Modified:
    llvm/trunk/lib/Analysis/Lint.cpp
    llvm/trunk/lib/IR/Verifier.cpp

Modified: llvm/trunk/lib/Analysis/Lint.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/Lint.cpp?rev=232268&r1=232267&r2=232268&view=diff
==============================================================================
--- llvm/trunk/lib/Analysis/Lint.cpp (original)
+++ llvm/trunk/lib/Analysis/Lint.cpp Sat Mar 14 11:47:37 2015
@@ -141,13 +141,20 @@ namespace {
       }
     }
 
-    // CheckFailed - A check failed, so print out the condition and the message
-    // that failed.  This provides a nice place to put a breakpoint if you want
-    // to see why something is not correct.
-    template <typename... Ts>
-    void CheckFailed(const Twine &Message, const Ts &...Vs) {
-      MessagesStr << Message << '\n';
-      WriteValues({Vs...});
+    // \brief A check failed, so printout out the condition and the message.
+    //
+    // This provides a nice place to put a breakpoint if you want to see why
+    // something is not correct.
+    void CheckFailed(const Twine &Message) { MessagesStr << Message << '\n'; }
+
+    // \brief A check failed (with values to print).
+    //
+    // This calls the Message-only version so that the above is easier to set a
+    // breakpoint on.
+    template <typename T1, typename... Ts>
+    void CheckFailed(const Twine &Message, const T1 &V1, const Ts &...Vs) {
+      CheckFailed(Message);
+      WriteValues({V1, Vs...});
     }
   };
 }

Modified: llvm/trunk/lib/IR/Verifier.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/Verifier.cpp?rev=232268&r1=232267&r2=232268&view=diff
==============================================================================
--- llvm/trunk/lib/IR/Verifier.cpp (original)
+++ llvm/trunk/lib/IR/Verifier.cpp Sat Mar 14 11:47:37 2015
@@ -131,15 +131,24 @@ private:
   template <typename... Ts> void WriteTs() {}
 
 public:
-  // CheckFailed - A check failed, so print out the condition and the message
-  // that failed.  This provides a nice place to put a breakpoint if you want
-  // to see why something is not correct.
-  template <typename... Ts>
-  void CheckFailed(const Twine &Message, const Ts &... Vs) {
+  // \brief A check failed, so printout out the condition and the message.
+  //
+  // This provides a nice place to put a breakpoint if you want to see why
+  // something is not correct.
+  void CheckFailed(const Twine &Message) {
     OS << Message << '\n';
-    WriteTs(Vs...);
     Broken = true;
   }
+
+  // \brief A check failed (with values to print).
+  //
+  // This calls the Message-only version so that the above is easier to set a
+  // breakpoint on.
+  template <typename T1, typename... Ts>
+  void CheckFailed(const Twine &Message, const T1 &V1, const Ts &... Vs) {
+    CheckFailed(Message);
+    WriteTs(V1, Vs...);
+  }
 };
 
 class Verifier : public InstVisitor<Verifier>, VerifierSupport {





More information about the llvm-commits mailing list