зеркало из https://github.com/microsoft/clang-1.git
Convert inline asm source ranges into clang SourceRanges and print them with the instantiated note.
t.c:2:7: error: invalid operand for instruction asm("movl 0(%rax), 0(%edx)"); ^ <inline asm>:1:16: note: instantiated into assembly here movl 0(%rax), 0(%edx) ^~~~~~~ 1 error generated. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142131 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
176d1d7c57
Коммит
96fda0c4a7
|
@ -215,8 +215,17 @@ void BackendConsumer::InlineAsmDiagHandler2(const llvm::SMDiagnostic &D,
|
|||
if (LocCookie.isValid()) {
|
||||
Diags.Report(LocCookie, diag::err_fe_inline_asm).AddString(Message);
|
||||
|
||||
if (D.getLoc().isValid())
|
||||
Diags.Report(Loc, diag::note_fe_inline_asm_here);
|
||||
if (D.getLoc().isValid()) {
|
||||
DiagnosticBuilder B = Diags.Report(Loc, diag::note_fe_inline_asm_here);
|
||||
// Convert the SMDiagnostic ranges into SourceRange and attach them
|
||||
// to the diagnostic.
|
||||
for (unsigned i = 0, e = D.getRanges().size(); i != e; ++i) {
|
||||
std::pair<unsigned, unsigned> Range = D.getRanges()[i];
|
||||
unsigned Column = D.getColumnNo();
|
||||
B << SourceRange(Loc.getLocWithOffset(Range.first - Column),
|
||||
Loc.getLocWithOffset(Range.second - Column));
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче