@kfree exists@ identifier f; type T; identifier x; @@ void f(...,T x,...) { ... kfree(x); ... } @other_path exists@ identifier kfree.f; type kfree.T; identifier kfree.x; @@ void f(...,T x,...) { ... when != kfree(x); } @ script:python depends on other_path @ f << kfree.f; // identifier t << kfree.T; // identifier @@ print "possible_kfree: FN:%s TY:%s" % (f,t) @ script:python depends on !other_path @ f << kfree.f; // identifier t << kfree.T; // identifier @@ print "guaranteed_kfree: FN:%s TY:%s" % (f,t)