[LLVMdev] LLVM asserts
Eli Friedman
eli.friedman at gmail.com
Wed Aug 19 14:43:38 PDT 2009
On Wed, Aug 19, 2009 at 2:34 PM, David Greene<dag at cray.com> wrote:
> On Wednesday 19 August 2009 11:29, Chris Lattner wrote:
>> On Aug 19, 2009, at 9:02 AM, Kenneth Uildriks wrote:
>> > How do you get LLVM methods to return or throw an error to the
>> > caller's code rather than aborting the process? I'd like my compiler
>> > to be able to print diagnostic messages, including language source
>> > lines, whenever LLVM reports a problem.
>>
>> Hi Kenneth,
>>
>> Recoverable errors are handled with llvm/Support/ErrorHandling.h. We
>> use asserts for conditions that "cannot happen". These are internal
>> errors and are not recoverable. The best way to not get one of these
>> is for your compiler to not have bugs :)
>
> We're dealing with this, but it's not a particularly friendly way to
> operate. Most compilers have some kind of error reporting mechanism
> and it would be helpful if LLVM provided a way to turn asserts and
> aborts into hooks that could be plugged into an existing infrastructure.
>
> Signal handlers aren't the best solution. Like I said, we're dealing with
> it but it's something we should be aware of long-term.
C++ isn't a safe language; there is in fact such a thing as an
unrecoverable error, and there isn't really anything we can do about
it.
-Eli
More information about the llvm-dev
mailing list