On 11/05/15 13:57, Markus Armbruster wrote:
> Laszlo Ersek <ler...@redhat.com> writes:
> 
>> On 11/04/15 17:35, Gabriel L. Somlo wrote:
> [...]
>>> +    assert(size > 0 && size <= sizeof(value));
>>
>> It's a matter of taste, and I won't insist at all, just mention that I
>> didn't write those two assert()s as separate statements :)
>>
>> Namely, with a conjunction (P1 && P2 && ... && Pn), you have the
>> possibility to spell the assertion as:
>>
>>   assert(P1);
>>   assert(P2);
>>   ...
>>   assert(Pn);
>>
>> And, if any one of those fails, you will know *which one*. Because the
>> line number in the "assertion failed" message will tell you.
> 
> Yes, matter of taste, but that can't stop me having opinions on matters
> of taste ;)
> 
> You pay for the more detailed assertion failure reporting with extra
> source code clutter (as written, it's immediately obvious that it's a
> bounds check, less so if split), and extra object code when NDEBUG is
> off (which it should always be).
> 
> Personally, I'm content to fish details out of a core dump.  YMMV.

The 12 GB core dump that the Launchpad user, reporting the bug from the
other side of the Earth, failed to save? :)

But, I do concede your point. (Line numbers aren't a panacea either, in
situations like the above.) Gabriel, please pick whichever format you
like more.

Thanks
Laszlo

Reply via email to