[PATCH] Report fatal errors instead of segfaulting/asserting on a few invalid accesses while reading MachO files.
david.majnemer at gmail.com
Thu Jan 15 11:11:51 PST 2015
In http://reviews.llvm.org/D6945#109149, @belleyb wrote:
> Hi Everyone,
> My understanding is that the ELF writer is also used by the MCJIT engine when filling an object buffer with jitted code. In that context, I am wondering if the call to llvm::report_fatal_error() is the appropriate way to report the error. It has the effect of killing the entire host application simply because one LLVM module couldn¹t be jitted.
> Of course, fatal errors and assertions should never occur! ;-) And, if they never occur, then there isn¹t any issue. Moreover, it is much better to exit the application after a proper error message has been emitted, then crashing on a segfault! So, this patch is definitely a step in the right direction.
> On the other hand, report_fatal_error() has the unfortunate consequence of killing our application before our users have any chance of saving their work.
> Thus, I am wondering if there would be a way to indicate to the MCJIT engine that an internal error occurred while jitting a particular LLVM module. The compilation of that module would abort, but the application would not exit.
> Is that a legitimate concern ? Comments ?
> Benoit Belley
> Sr Principal Developer
> M&E-Product Development Group
> Autodesk, Inc.
> www.autodesk.com http://www.autodesk.com/
This review is for code that parses files and is primarily used by introspective tools like llvm-objdump and the like. The code you are referring is substantially different, I think that discussion belongs in a different thread from this one.
More information about the llvm-commits