diff --git a/llvm/utils/TableGen/CodeGenDAGPatterns.h b/llvm/utils/TableGen/CodeGenDAGPatterns.h --- a/llvm/utils/TableGen/CodeGenDAGPatterns.h +++ b/llvm/utils/TableGen/CodeGenDAGPatterns.h @@ -338,11 +338,7 @@ struct ValidateOnExit { ValidateOnExit(TypeSetByHwMode &T, TypeInfer &TI) : Infer(TI), VTS(T) {} - #ifndef NDEBUG ~ValidateOnExit(); - #else - ~ValidateOnExit() {} // Empty destructor with NDEBUG. - #endif TypeInfer &Infer; TypeSetByHwMode &VTS; }; diff --git a/llvm/utils/TableGen/CodeGenDAGPatterns.cpp b/llvm/utils/TableGen/CodeGenDAGPatterns.cpp --- a/llvm/utils/TableGen/CodeGenDAGPatterns.cpp +++ b/llvm/utils/TableGen/CodeGenDAGPatterns.cpp @@ -355,15 +355,12 @@ } bool TypeSetByHwMode::validate() const { -#ifndef NDEBUG if (empty()) return true; bool AllEmpty = true; for (const auto &I : *this) AllEmpty &= I.second.empty(); return !AllEmpty; -#endif - return true; } // --- TypeInfer @@ -888,22 +885,22 @@ return LegalCache; } -#ifndef NDEBUG TypeInfer::ValidateOnExit::~ValidateOnExit() { if (Infer.Validate && !VTS.validate()) { - dbgs() << "Type set is empty for each HW mode:\n" +#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP) + errs() << "Type set is empty for each HW mode:\n" "possible type contradiction in the pattern below " "(use -print-records with llvm-tblgen to see all " "expanded records).\n"; Infer.TP.dump(); - dbgs() << "Generated from record:\n"; + errs() << "Generated from record:\n"; Infer.TP.getRecord()->dump(); +#endif PrintFatalError(Infer.TP.getRecord()->getLoc(), "Type set is empty for each HW mode in '" + Infer.TP.getRecord()->getName() + "'"); } } -#endif //===----------------------------------------------------------------------===//