1*53ee8cc1Swenshuai.xi/// 2*53ee8cc1Swenshuai.xi/// Use resource_size function on resource object 3*53ee8cc1Swenshuai.xi/// instead of explicit computation. 4*53ee8cc1Swenshuai.xi/// 5*53ee8cc1Swenshuai.xi// Confidence: High 6*53ee8cc1Swenshuai.xi// Copyright: (C) 2009, 2010 Nicolas Palix, DIKU. GPLv2. 7*53ee8cc1Swenshuai.xi// Copyright: (C) 2009, 2010 Julia Lawall, DIKU. GPLv2. 8*53ee8cc1Swenshuai.xi// Copyright: (C) 2009, 2010 Gilles Muller, INRIA/LiP6. GPLv2. 9*53ee8cc1Swenshuai.xi// URL: http://coccinelle.lip6.fr/ 10*53ee8cc1Swenshuai.xi// Options: 11*53ee8cc1Swenshuai.xi// 12*53ee8cc1Swenshuai.xi// Keywords: resource_size 13*53ee8cc1Swenshuai.xi// Version min: 2.6.27 resource_size 14*53ee8cc1Swenshuai.xi// 15*53ee8cc1Swenshuai.xi 16*53ee8cc1Swenshuai.xivirtual context 17*53ee8cc1Swenshuai.xivirtual patch 18*53ee8cc1Swenshuai.xivirtual org 19*53ee8cc1Swenshuai.xivirtual report 20*53ee8cc1Swenshuai.xi 21*53ee8cc1Swenshuai.xi//---------------------------------------------------------- 22*53ee8cc1Swenshuai.xi// For context mode 23*53ee8cc1Swenshuai.xi//---------------------------------------------------------- 24*53ee8cc1Swenshuai.xi 25*53ee8cc1Swenshuai.xi@r_context depends on context && !patch && !org@ 26*53ee8cc1Swenshuai.xistruct resource *res; 27*53ee8cc1Swenshuai.xi@@ 28*53ee8cc1Swenshuai.xi 29*53ee8cc1Swenshuai.xi* (res->end - res->start) + 1 30*53ee8cc1Swenshuai.xi 31*53ee8cc1Swenshuai.xi//---------------------------------------------------------- 32*53ee8cc1Swenshuai.xi// For patch mode 33*53ee8cc1Swenshuai.xi//---------------------------------------------------------- 34*53ee8cc1Swenshuai.xi 35*53ee8cc1Swenshuai.xi@r_patch depends on !context && patch && !org@ 36*53ee8cc1Swenshuai.xistruct resource *res; 37*53ee8cc1Swenshuai.xi@@ 38*53ee8cc1Swenshuai.xi 39*53ee8cc1Swenshuai.xi- (res->end - res->start) + 1 40*53ee8cc1Swenshuai.xi+ resource_size(res) 41*53ee8cc1Swenshuai.xi 42*53ee8cc1Swenshuai.xi//---------------------------------------------------------- 43*53ee8cc1Swenshuai.xi// For org mode 44*53ee8cc1Swenshuai.xi//---------------------------------------------------------- 45*53ee8cc1Swenshuai.xi 46*53ee8cc1Swenshuai.xi 47*53ee8cc1Swenshuai.xi@r_org depends on !context && !patch && (org || report)@ 48*53ee8cc1Swenshuai.xistruct resource *res; 49*53ee8cc1Swenshuai.xiposition p; 50*53ee8cc1Swenshuai.xi@@ 51*53ee8cc1Swenshuai.xi 52*53ee8cc1Swenshuai.xi (res->end@p - res->start) + 1 53*53ee8cc1Swenshuai.xi 54*53ee8cc1Swenshuai.xi@rbad_org depends on !context && !patch && (org || report)@ 55*53ee8cc1Swenshuai.xistruct resource *res; 56*53ee8cc1Swenshuai.xiposition p != r_org.p; 57*53ee8cc1Swenshuai.xi@@ 58*53ee8cc1Swenshuai.xi 59*53ee8cc1Swenshuai.xi res->end@p - res->start 60*53ee8cc1Swenshuai.xi 61*53ee8cc1Swenshuai.xi@script:python depends on org@ 62*53ee8cc1Swenshuai.xip << r_org.p; 63*53ee8cc1Swenshuai.xix << r_org.res; 64*53ee8cc1Swenshuai.xi@@ 65*53ee8cc1Swenshuai.xi 66*53ee8cc1Swenshuai.ximsg="ERROR with %s" % (x) 67*53ee8cc1Swenshuai.ximsg_safe=msg.replace("[","@(").replace("]",")") 68*53ee8cc1Swenshuai.xicoccilib.org.print_todo(p[0], msg_safe) 69*53ee8cc1Swenshuai.xi 70*53ee8cc1Swenshuai.xi@script:python depends on report@ 71*53ee8cc1Swenshuai.xip << r_org.p; 72*53ee8cc1Swenshuai.xix << r_org.res; 73*53ee8cc1Swenshuai.xi@@ 74*53ee8cc1Swenshuai.xi 75*53ee8cc1Swenshuai.ximsg="ERROR: Missing resource_size with %s" % (x) 76*53ee8cc1Swenshuai.xicoccilib.report.print_report(p[0], msg) 77*53ee8cc1Swenshuai.xi 78*53ee8cc1Swenshuai.xi@script:python depends on org@ 79*53ee8cc1Swenshuai.xip << rbad_org.p; 80*53ee8cc1Swenshuai.xix << rbad_org.res; 81*53ee8cc1Swenshuai.xi@@ 82*53ee8cc1Swenshuai.xi 83*53ee8cc1Swenshuai.ximsg="WARNING with %s" % (x) 84*53ee8cc1Swenshuai.ximsg_safe=msg.replace("[","@(").replace("]",")") 85*53ee8cc1Swenshuai.xicoccilib.org.print_todo(p[0], msg_safe) 86*53ee8cc1Swenshuai.xi 87*53ee8cc1Swenshuai.xi@script:python depends on report@ 88*53ee8cc1Swenshuai.xip << rbad_org.p; 89*53ee8cc1Swenshuai.xix << rbad_org.res; 90*53ee8cc1Swenshuai.xi@@ 91*53ee8cc1Swenshuai.xi 92*53ee8cc1Swenshuai.ximsg="WARNING: Suspicious code. resource_size is maybe missing with %s" % (x) 93*53ee8cc1Swenshuai.xicoccilib.report.print_report(p[0], msg) 94