On 9/18/12, Eric Botcazou <ebotca...@adacore.com> wrote:
>> When, the property test is embedded within a larger condition, a little
>> restructuring is required to pull out the secondary conditions.  For
>> example,
>>
>>   if (symtab_variable_p (node)
>>       && varpool (node)->finalized)
>>     varpool_analyze_node (varpool (node));
>>
>> becomes
>>
>>   if (varpool_node *vnode = node->try_variable ())
>>     if (vnode->finalized)
>>       varpool_analyze_node (vnode);
>
> Please avoid cascading if's like this, use the existing && idiom instead.

The language syntax would bind the conditional into the intializer, as in

  if (varpool_node *vnode = (node->try_variable ()
                             && vnode->finalized))
    varpool_analyze_node (vnode);

which does not type-match.

So, if you want the type saftey and performance, the cascade is really
unavoidable.

-- 
Lawrence Crowl

Reply via email to