[PATCH] Report fatal errors instead of segfaulting/asserting on a few invalid accesses while reading MachO files.
benoit.belley at autodesk.com
Thu Jan 15 05:22:18 PST 2015
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 ?
Sr Principal Developer
M&E-Product Development Group
More information about the llvm-commits