1 //===- llvm/TableGen/Error.h - tblgen error handling helpers ----*- C++ -*-===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 // 9 // This file contains error handling helper routines to pretty-print diagnostic 10 // messages from tblgen. 11 // 12 //===----------------------------------------------------------------------===// 13 14 #ifndef LLVM_TABLEGEN_ERROR_H 15 #define LLVM_TABLEGEN_ERROR_H 16 17 #include "llvm/Support/SourceMgr.h" 18 #include "llvm/TableGen/Record.h" 19 20 namespace llvm { 21 22 void PrintNote(const Twine &Msg); 23 void PrintNote(ArrayRef<SMLoc> NoteLoc, const Twine &Msg); 24 25 [[noreturn]] void PrintFatalNote(const Twine &Msg); 26 [[noreturn]] void PrintFatalNote(ArrayRef<SMLoc> ErrorLoc, const Twine &Msg); 27 [[noreturn]] void PrintFatalNote(const Record *Rec, const Twine &Msg); 28 [[noreturn]] void PrintFatalNote(const RecordVal *RecVal, const Twine &Msg); 29 30 void PrintWarning(const Twine &Msg); 31 void PrintWarning(ArrayRef<SMLoc> WarningLoc, const Twine &Msg); 32 void PrintWarning(const char *Loc, const Twine &Msg); 33 34 void PrintError(const Twine &Msg); 35 void PrintError(ArrayRef<SMLoc> ErrorLoc, const Twine &Msg); 36 void PrintError(const char *Loc, const Twine &Msg); 37 void PrintError(const Record *Rec, const Twine &Msg); 38 void PrintError(const RecordVal *RecVal, const Twine &Msg); 39 40 [[noreturn]] void PrintFatalError(const Twine &Msg); 41 [[noreturn]] void PrintFatalError(ArrayRef<SMLoc> ErrorLoc, const Twine &Msg); 42 [[noreturn]] void PrintFatalError(const Record *Rec, const Twine &Msg); 43 [[noreturn]] void PrintFatalError(const RecordVal *RecVal, const Twine &Msg); 44 45 void CheckAssert(SMLoc Loc, Init *Condition, Init *Message); 46 void dumpMessage(SMLoc Loc, Init *Message); 47 48 extern SourceMgr SrcMgr; 49 extern unsigned ErrorsPrinted; 50 51 } // end namespace llvm 52 53 #endif 54