[LLVMdev] Proposal for better assertions in LLVM

Chris Lattner clattner at apple.com
Tue Jul 26 22:59:04 PDT 2011


On Jul 26, 2011, at 9:17 PM, Talin wrote:

> Here's an example of how this would be used: In the constructor for ConstantVector, there's an assert:
> 
>   assert(C->getType() == T->getElementType() &&
>          "Initializer for vector element doesn't match vector element type!");
> 
> I would change this to:
> 
>   ASSERT_STRM(C->getType() == T->getElementType(),
>     "Initializer for vector element " << I - V.begin() << " with type " <<
>     C->getType() << " doesn't match vector element type " <<
>     T->getElementType());
> 
> With more detailed assertions like this, a much larger class of programmer errors can be diagnosed without having to go into the debugger.
> 
> Because the stream is a raw_ostream, LLVM types and values can easily be printed to the stream without having to convert them to string form.

I'm unconvinced that this is worth it at all.  This is only going to allow you to "avoid going into the debugger" in the most trivial cases.

-Chris
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110726/886f2e3a/attachment.html>


More information about the llvm-dev mailing list