From 376a8a773e38fdcd9102a40e08ab1e0661d645d9 Mon Sep 17 00:00:00 2001 From: Jakob Stoklund Olesen Date: Wed, 22 Aug 2012 23:33:58 +0000 Subject: Print out the location of expanded multiclass defs in TableGen errors. When reporting an error for a defm, we would previously only report the location of the outer defm, which is not always where the error is. Now we also print the location of the expanded multiclass defs: lib/Target/X86/X86InstrSSE.td:2902:12: error: foo defm ADD : basic_sse12_fp_binop_s<0x58, "add", fadd, SSE_ALU_ITINS_S>, ^ lib/Target/X86/X86InstrSSE.td:2801:11: note: instantiated from multiclass defm PD : sse12_fp_packed Locs; std::string Message; public: - TGError(SMLoc loc, const std::string &message) : Loc(loc), Message(message) {} + TGError(ArrayRef locs, const std::string &message) + : Locs(locs.begin(), locs.end()), Message(message) {} - SMLoc getLoc() const { return Loc; } + ArrayRef getLoc() const { return Locs; } const std::string &getMessage() const { return Message; } }; -void PrintWarning(SMLoc WarningLoc, const Twine &Msg); +void PrintWarning(ArrayRef WarningLoc, const Twine &Msg); void PrintWarning(const char *Loc, const Twine &Msg); void PrintWarning(const Twine &Msg); void PrintWarning(const TGError &Warning); -void PrintError(SMLoc ErrorLoc, const Twine &Msg); +void PrintError(ArrayRef ErrorLoc, const Twine &Msg); void PrintError(const char *Loc, const Twine &Msg); void PrintError(const Twine &Msg); void PrintError(const TGError &Error); -- cgit v1.1