From mboxrd@z Thu Jan 1 00:00:00 1970 From: elfring@users.sourceforge.net (SF Markus Elfring) Date: Wed, 26 Feb 2014 09:04:19 +0100 Subject: [Cocci] Remove unnecessary null pointer checks? In-Reply-To: References: <5307CAA2.8060406@users.sourceforge.net> <530A086E.8010901@users.sourceforge.net> <530A72AA.3000601@users.sourceforge.net> <530B5FB6.6010207@users.sourceforge.net> <530C5E18.1020800@users.sourceforge.net> <530CD2C4.4050903@users.sourceforge.net> <530CF8FF.8080600@users.sourceforge.net> Message-ID: <530DA003.8020604@users.sourceforge.net> To: cocci@systeme.lip6.fr List-Id: cocci@systeme.lip6.fr > Remember that ... matches the shortest path between what is before and > what is after. So if there is another if test on the same data in the > function, that will cause a failure. If yo udon't care to have this > constraint, you can put when any on a ... The following pattern variant does not show a different analysis result. @is_unnecessary_check@ expression data; identifier work; identifier release =~ "^kz?free$"; position pos; type t; @@ t work at pos(...) { ... when any ( if (data) release(data); | if (likely(data)) release(data); ) ... when any } Regards, Markus