Error.cpp revision 3f2d5f60b31fd057c10f77b2e607b23a8c94f6d3
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 230b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbachvoid PrintError(SMLoc ErrorLoc, const Twine &Msg) { 243f2d5f60b31fd057c10f77b2e607b23a8c94f6d3Chris Lattner SrcMgr.PrintMessage(ErrorLoc, SourceMgr::DK_Error, Msg); 250b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbach} 260b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbach 270b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbachvoid PrintError(const char *Loc, const Twine &Msg) { 283f2d5f60b31fd057c10f77b2e607b23a8c94f6d3Chris Lattner SrcMgr.PrintMessage(SMLoc::getFromPointer(Loc), SourceMgr::DK_Error, Msg); 290b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbach} 300b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbach 310b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbachvoid PrintError(const Twine &Msg) { 320b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbach errs() << "error:" << Msg << "\n"; 330b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbach} 340b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbach 350b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbachvoid PrintError(const TGError &Error) { 360b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbach PrintError(Error.getLoc(), Error.getMessage()); 370b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbach} 380b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbach 390b6a44afb92fed0365b6709c1f46b0c5e49e1a72Jim Grosbach} // end namespace llvm 40