From: Alex Richardson Date: Wed, 31 Mar 2021 08:24:03 +0000 (+0100) Subject: [TableGen] Emit more helpful error messages on empty type set X-Git-Tag: llvmorg-14-init~10826 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=44ce487bfe8badc3e3718e7cc81c289540e6725d;p=platform%2Fupstream%2Fllvm.git [TableGen] Emit more helpful error messages on empty type set I have seen this error quite frequently in our out-of-tree CHERI backends and the lack of location information sometimes makes it quite difficult to track down the actual source of the error. This patch changes the llvm_unreachable() to a PrintFatalError() so that tablegen prints a stack of source locations. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D99468 --- diff --git a/llvm/utils/TableGen/CodeGenDAGPatterns.cpp b/llvm/utils/TableGen/CodeGenDAGPatterns.cpp index 1b996f0..ce6e090 100644 --- a/llvm/utils/TableGen/CodeGenDAGPatterns.cpp +++ b/llvm/utils/TableGen/CodeGenDAGPatterns.cpp @@ -846,7 +846,11 @@ TypeInfer::ValidateOnExit::~ValidateOnExit() { "(use -print-records with llvm-tblgen to see all " "expanded records).\n"; Infer.TP.dump(); - llvm_unreachable(nullptr); + dbgs() << "Generated from record:\n"; + Infer.TP.getRecord()->dump(); + PrintFatalError(Infer.TP.getRecord()->getLoc(), + "Type set is empty for each HW mode in '" + + Infer.TP.getRecord()->getName() + "'"); } } #endif