[PATCH] Report fatal errors instead of segfaulting/asserting on a few invalid accesses while reading MachO files.

David Majnemer 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 ?
> Cheers,
> Benoit
> 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 mailing list