On Jan 28, 2009, at 9:15 AM, Douglas Gregor wrote:

>
> On Jan 28, 2009, at 8:25 AM, Sebastian Redl wrote:
>
>> Chris Lattner wrote:
>>> On Jan 25, 2009, at 11:43 AM, Sebastian Redl wrote:
>>>> URL: http://llvm.org/viewvc/llvm-project?rev=62971&view=rev
>>>> Log:
>>>> Implement implicit conversions for pointers-to-member.
>>>
>>>> +      bool DerivationOkay = IsDerivedFrom(ToClass, FromClass,  
>>>> Paths);
>>>> +      assert(DerivationOkay &&
>>>> +             "Should not have been called if derivation isn't  
>>>> OK.");
>>>> +      if (!DerivationOkay)
>>>> +        return true;
>>>
>>> This 'if' (and others like it) are dead code, please remove it, the
>>> assertion should be enough.
>> The problem with removing it is that it makes the variable unused in
>> release builds. Do we have some cross-compiler way of suppressing
>> resulting warnings?
>
> Chris likes to write something like:
>
>  assert(DerivationOkay && "blah"); DerivationOkay = DerivationOkay;
>
> I've been moving toward
>
>  assert(DerivationOkay && "blah"); (void)DerivationOkay;

Ooh, that is nicer :)

I wish that assert(X) expanded into "(void)(X)" when in NDEBUG mode.   
That way we'd get side effects and issues like this would go away :-/

-Chris
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to