mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-25 05:22:04 +00:00
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<opc, !strconcat(OpcodeStr, "pd"), OpNode, VR128,
^
lib/Target/X86/X86InstrSSE.td:194:5: note: instantiated from multiclass
def rm : PI<opc, MRMSrcMem, (outs RC:$dst), (ins RC:$src1, x86memop:$src2),
^
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162409 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
+15
-4
@@ -20,8 +20,19 @@ namespace llvm {
|
||||
|
||||
SourceMgr SrcMgr;
|
||||
|
||||
void PrintWarning(SMLoc WarningLoc, const Twine &Msg) {
|
||||
SrcMgr.PrintMessage(WarningLoc, SourceMgr::DK_Warning, Msg);
|
||||
static void PrintMessage(ArrayRef<SMLoc> Loc, SourceMgr::DiagKind Kind,
|
||||
const Twine &Msg) {
|
||||
SMLoc NullLoc;
|
||||
if (Loc.empty())
|
||||
Loc = NullLoc;
|
||||
SrcMgr.PrintMessage(Loc.front(), Kind, Msg);
|
||||
for (unsigned i = 1; i < Loc.size(); ++i)
|
||||
SrcMgr.PrintMessage(Loc[i], SourceMgr::DK_Note,
|
||||
"instantiated from multiclass");
|
||||
}
|
||||
|
||||
void PrintWarning(ArrayRef<SMLoc> WarningLoc, const Twine &Msg) {
|
||||
PrintMessage(WarningLoc, SourceMgr::DK_Warning, Msg);
|
||||
}
|
||||
|
||||
void PrintWarning(const char *Loc, const Twine &Msg) {
|
||||
@@ -36,8 +47,8 @@ void PrintWarning(const TGError &Warning) {
|
||||
PrintWarning(Warning.getLoc(), Warning.getMessage());
|
||||
}
|
||||
|
||||
void PrintError(SMLoc ErrorLoc, const Twine &Msg) {
|
||||
SrcMgr.PrintMessage(ErrorLoc, SourceMgr::DK_Error, Msg);
|
||||
void PrintError(ArrayRef<SMLoc> ErrorLoc, const Twine &Msg) {
|
||||
PrintMessage(ErrorLoc, SourceMgr::DK_Error, Msg);
|
||||
}
|
||||
|
||||
void PrintError(const char *Loc, const Twine &Msg) {
|
||||
|
||||
Reference in New Issue
Block a user