[llvm-dev] Reporting source errors from MCCodeEmitter::encodeInstruction() ?

Thomas Goodfellow via llvm-dev llvm-dev at lists.llvm.org
Tue Feb 4 14:59:12 PST 2020


[apologies for this duplicate post: originally sent to lldb-dev by not
paying attention to the address auto-completion]

We have a backend for a target that at present only detects some
assembler errors when emitting instructions (basically because the
platform has configurable properties with dependencies between
instructions and it was easier to check for their interaction late
than try to detect them earlier, e.g. through custom encoder methods
and tablegen). Emitting diagnostics through
SourceManager::PrintMessage() "works" in the limited sense of
communicating the problem to a human, however it doesn't prevent
generation of an incorrect output file or change the process exit
code.

We'd prefer not to resort to report_fatal_error() since that isn't a
polite way to diagnose problems in the source.

Is there a sensible way to properly signal a source error from the
level of encodeInstruction()? Or is it expected that all such errors
are reported earlier?


More information about the llvm-dev mailing list