From 2a90990ab02b0d74b9c9dd8f53f562dcf66bf013 Mon Sep 17 00:00:00 2001 From: "Duncan P. N. Exon Smith" Date: Sat, 14 Mar 2015 16:47:37 +0000 Subject: [PATCH] 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. llvm-svn: 232268 --- lib/Analysis/Lint.cpp | 21 ++++++++++++++------- lib/IR/Verifier.cpp | 21 +++++++++++++++------ 2 files changed, 29 insertions(+), 13 deletions(-) diff --git a/lib/Analysis/Lint.cpp b/lib/Analysis/Lint.cpp index 887688737b0..9260eb2c007 100644 --- a/lib/Analysis/Lint.cpp +++ b/lib/Analysis/Lint.cpp @@ -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 - 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 + void CheckFailed(const Twine &Message, const T1 &V1, const Ts &...Vs) { + CheckFailed(Message); + WriteValues({V1, Vs...}); } }; } diff --git a/lib/IR/Verifier.cpp b/lib/IR/Verifier.cpp index 9e77c32ee4b..85251551f99 100644 --- a/lib/IR/Verifier.cpp +++ b/lib/IR/Verifier.cpp @@ -131,15 +131,24 @@ private: template 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 - 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 + void CheckFailed(const Twine &Message, const T1 &V1, const Ts &... Vs) { + CheckFailed(Message); + WriteTs(V1, Vs...); + } }; class Verifier : public InstVisitor, VerifierSupport {