Error.cpp revision 97c02bf2409bccdb43c3822c438e3ff977d8514e
10b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbach//===- Error.cpp - tblgen error handling helper routines --------*- C++ -*-===// 20b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbach// 30b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbach// The LLVM Compiler Infrastructure 40b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbach// 50b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbach// This file is distributed under the University of Illinois Open Source 60b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbach// License. See LICENSE.TXT for details. 70b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbach// 80b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbach//===----------------------------------------------------------------------===// 90b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbach// 100b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbach// This file contains error handling helper routines to pretty-print diagnostic 110b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbach// messages from tblgen. 120b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbach// 130b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbach//===----------------------------------------------------------------------===// 140b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbach 157c788888872233748da10a8177a9a1eb176c1bc8Peter Collingbourne#include "llvm/TableGen/Error.h" 160b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbach#include "llvm/ADT/Twine.h" 170b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbach#include "llvm/Support/raw_ostream.h" 180b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbach 190b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbachnamespace llvm { 200b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbach 210b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim GrosbachSourceMgr SrcMgr; 220b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbach 2397c02bf2409bccdb43c3822c438e3ff977d8514eJim Grosbachvoid PrintWarning(SMLoc WarningLoc, const Twine &Msg) { 2497c02bf2409bccdb43c3822c438e3ff977d8514eJim Grosbach SrcMgr.PrintMessage(WarningLoc, SourceMgr::DK_Warning, Msg); 2597c02bf2409bccdb43c3822c438e3ff977d8514eJim Grosbach} 2697c02bf2409bccdb43c3822c438e3ff977d8514eJim Grosbach 2797c02bf2409bccdb43c3822c438e3ff977d8514eJim Grosbachvoid PrintWarning(const char *Loc, const Twine &Msg) { 2897c02bf2409bccdb43c3822c438e3ff977d8514eJim Grosbach SrcMgr.PrintMessage(SMLoc::getFromPointer(Loc), SourceMgr::DK_Warning, Msg); 2997c02bf2409bccdb43c3822c438e3ff977d8514eJim Grosbach} 3097c02bf2409bccdb43c3822c438e3ff977d8514eJim Grosbach 3197c02bf2409bccdb43c3822c438e3ff977d8514eJim Grosbachvoid PrintWarning(const Twine &Msg) { 3297c02bf2409bccdb43c3822c438e3ff977d8514eJim Grosbach errs() << "error:" << Msg << "\n"; 3397c02bf2409bccdb43c3822c438e3ff977d8514eJim Grosbach} 3497c02bf2409bccdb43c3822c438e3ff977d8514eJim Grosbach 3597c02bf2409bccdb43c3822c438e3ff977d8514eJim Grosbachvoid PrintWarning(const TGError &Warning) { 3697c02bf2409bccdb43c3822c438e3ff977d8514eJim Grosbach PrintWarning(Warning.getLoc(), Warning.getMessage()); 3797c02bf2409bccdb43c3822c438e3ff977d8514eJim Grosbach} 3897c02bf2409bccdb43c3822c438e3ff977d8514eJim Grosbach 390b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbachvoid PrintError(SMLoc ErrorLoc, const Twine &Msg) { 403f2d5f60b31fd057c10f77b2e607b23a8c94f6d3Chris Lattner SrcMgr.PrintMessage(ErrorLoc, SourceMgr::DK_Error, Msg); 410b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbach} 420b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbach 430b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbachvoid PrintError(const char *Loc, const Twine &Msg) { 443f2d5f60b31fd057c10f77b2e607b23a8c94f6d3Chris Lattner SrcMgr.PrintMessage(SMLoc::getFromPointer(Loc), SourceMgr::DK_Error, Msg); 450b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbach} 460b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbach 470b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbachvoid PrintError(const Twine &Msg) { 480b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbach errs() << "error:" << Msg << "\n"; 490b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbach} 500b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbach 510b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbachvoid PrintError(const TGError &Error) { 520b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbach PrintError(Error.getLoc(), Error.getMessage()); 530b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbach} 540b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbach 550b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbach} // end namespace llvm 56