Yeah.  The re-work to scoped_guard() has landed in linux next.  It does
something like:

        for (struct lock __cleanup(destroy) = constructor;
             is_not_optional || took_lock();
             goto done_label)
                if (0) {
                        done_label: break;
                } else

Smatch has always ignored if (0) statements because it never occured to me
that there would be a label statement in there.  But also because of the way
that Smatch handles loops, this was always going to need to be handled 
specially.

I'll try push something today.

regards,
dan carpenter


Reply via email to