https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122809
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|WAITING |RESOLVED
Resolution|--- |INVALID
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Heuristics here says it is better.
Anyways if (a)free (a); can safely transform to just free(a) in normal code but
the branch might be faster. If a has high probability of being null.
What gcc is doing is basically delaying the creation of the frame. In this case
when a is null there is no frame created.
Note a in case is t->b.