mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-25 16:24:23 +00:00
MIR Parser: refactor error reporting for machine instruction parser errors. NFC.
This commit extracts the code that reports an error that's produced by the machine instruction parser into a new method that can be reused in other places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241086 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -60,6 +60,12 @@ public:
|
||||
/// Always returns true.
|
||||
bool error(const Twine &Message);
|
||||
|
||||
/// Report a given error with the location translated from the location in an
|
||||
/// embedded string literal to a location in the MIR file.
|
||||
///
|
||||
/// Always returns true.
|
||||
bool error(const SMDiagnostic &Error, SMRange SourceRange);
|
||||
|
||||
/// Try to parse the optional LLVM module and the machine functions in the MIR
|
||||
/// file.
|
||||
///
|
||||
@ -119,6 +125,12 @@ bool MIRParserImpl::error(const Twine &Message) {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool MIRParserImpl::error(const SMDiagnostic &Error, SMRange SourceRange) {
|
||||
assert(Error.getKind() == SourceMgr::DK_Error && "Expected an error");
|
||||
reportDiagnostic(diagFromMIStringDiag(Error, SourceRange));
|
||||
return true;
|
||||
}
|
||||
|
||||
void MIRParserImpl::reportDiagnostic(const SMDiagnostic &Diag) {
|
||||
DiagnosticSeverity Kind;
|
||||
switch (Diag.getKind()) {
|
||||
@ -266,11 +278,8 @@ bool MIRParserImpl::initializeMachineBasicBlock(
|
||||
for (const auto &MISource : YamlMBB.Instructions) {
|
||||
SMDiagnostic Error;
|
||||
MachineInstr *MI = nullptr;
|
||||
if (parseMachineInstr(MI, SM, MF, MISource.Value, MBBSlots, IRSlots,
|
||||
Error)) {
|
||||
reportDiagnostic(diagFromMIStringDiag(Error, MISource.SourceRange));
|
||||
return true;
|
||||
}
|
||||
if (parseMachineInstr(MI, SM, MF, MISource.Value, MBBSlots, IRSlots, Error))
|
||||
return error(Error, MISource.SourceRange);
|
||||
MBB.insert(MBB.end(), MI);
|
||||
}
|
||||
return false;
|
||||
|
Reference in New Issue
Block a user