From 292f37693490e233592a5693fac39b5e96e0678b Mon Sep 17 00:00:00 2001 From: Mehdi Amini Date: Thu, 6 Oct 2016 23:41:49 +0000 Subject: [PATCH] Revert "Add a static_assert to enforce that parameters to llvm::format() are not totally unsafe" This reverts commit r283509, clang is hitting the assert. llvm-svn: 283510 --- llvm/include/llvm/Support/Format.h | 14 +------------- llvm/lib/Target/PowerPC/PPCVSXSwapRemoval.cpp | 3 +-- 2 files changed, 2 insertions(+), 15 deletions(-) diff --git a/llvm/include/llvm/Support/Format.h b/llvm/include/llvm/Support/Format.h index 026488c..d5c301c 100644 --- a/llvm/include/llvm/Support/Format.h +++ b/llvm/include/llvm/Support/Format.h @@ -75,16 +75,6 @@ public: /// printed, this synthesizes the string into a temporary buffer provided and /// returns whether or not it is big enough. -// Helper to validate that format() parameters are scalars or pointers. -template struct validate_format_parameters; -template -struct validate_format_parameters { - static_assert(std::is_scalar::value, - "format can't be used with non fundamental / non pointer type"); - validate_format_parameters() { validate_format_parameters(); } -}; -template <> struct validate_format_parameters<> {}; - template class format_object final : public format_object_base { std::tuple Vals; @@ -101,9 +91,7 @@ class format_object final : public format_object_base { public: format_object(const char *fmt, const Ts &... vals) - : format_object_base(fmt), Vals(vals...) { - validate_format_parameters(); - } + : format_object_base(fmt), Vals(vals...) {} int snprint(char *Buffer, unsigned BufferSize) const override { return snprint_tuple(Buffer, BufferSize, index_sequence_for()); diff --git a/llvm/lib/Target/PowerPC/PPCVSXSwapRemoval.cpp b/llvm/lib/Target/PowerPC/PPCVSXSwapRemoval.cpp index 8197285b..d53c8e3 100644 --- a/llvm/lib/Target/PowerPC/PPCVSXSwapRemoval.cpp +++ b/llvm/lib/Target/PowerPC/PPCVSXSwapRemoval.cpp @@ -962,8 +962,7 @@ void PPCVSXSwapRemoval::dumpSwapVector() { DEBUG(dbgs() << format("%6d", ID)); DEBUG(dbgs() << format("%6d", EC->getLeaderValue(ID))); DEBUG(dbgs() << format(" BB#%3d", MI->getParent()->getNumber())); - DEBUG(dbgs() << format(" %14s ", - TII->getName(MI->getOpcode()).str().c_str())); + DEBUG(dbgs() << format(" %14s ", TII->getName(MI->getOpcode()))); if (SwapVector[EntryIdx].IsLoad) DEBUG(dbgs() << "load "); -- 2.7.4