>
> 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.
Just write:
varpool_node *vnode;
if ((vnode = node->try_variable ()) && vnode->finalized)
varpool_analyze_node (vnode);
This has been the standard style for the past 2 decades and trading it for
cascading if's is really a bad idea.
--
Eric Botcazou