[llvm-dev] LLVM Fatal Error Handling

Reid Kleckner via llvm-dev llvm-dev at lists.llvm.org
Thu Mar 10 08:45:38 PST 2016


On Wed, Mar 9, 2016 at 9:42 PM, David Blaikie via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

>
>
> On Wed, Mar 9, 2016 at 7:42 PM, Paul Hancock <
> Paul.Hancock.17041993 at live.com> wrote:
>
>> I should be able to flush/shutdown everything and reinit/restart it like
>> I do everything else, it would be pretty bad design to not be able to.
>>
> Yeah, it's far from perfect, but error handling can be difficult/expensive
> to weave through every layer. So for certain kinds of errors we don't do
> that sort of thing.
>
>> On a similar issue, calling llvm_shutdown and reinitialising everything
>> leads to problems as it doesn't appear that llvm is being reinitialised
>> correctly, this seems to be a bug unless there's an extra function call I'm
>> missing that isn't needed at first startup?
>>
> In theory this should work, of course - if you've got specific things that
> seem to not be working, might be worth filing a bug, etc?
> I'm not sure how well tested/exercised the llvm_shutdown path is.
> (equally, most stuff should just be in the LLVMContext & should be able to
> destroy that and make a new one without the full shutdown/re-init, not sure
> if that path is any better tested/used, though)
>
> (perhaps someone else on llvm-dev can chime in if I'm giving an
> incorrectly pessimistic representation of the state of things)
>

Recovering from fatal errors by throwing an exception might work, and
you're welcome to try it. I've heard that people do this and it "works" in
practice. Just be aware that we don't provide a warranty. We're especially
bad at reinitializing.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160310/a82f2f0c/attachment-0001.html>


More information about the llvm-dev mailing list