~ubuntu-branches/ubuntu/trusty/coccinelle/trusty-proposed

« back to all changes in this revision

Viewing changes to tests/array.cocci

  • Committer: Bazaar Package Importer
  • Author(s): Bhavani Shankar
  • Date: 2010-01-31 22:30:19 UTC
  • mfrom: (7.1.3 sid)
  • Revision ID: james.westby@ubuntu.com-20100131223019-hbq02ip17tn17n52
Tags: 0.2.0.deb-1ubuntu1
* Merge from debian testing (LP: #515198).Remaining changes:
  - debian/control: build-depend on python2.6-dev,
    set XB-Python-Version to 2.6

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
@@
2
 
type T;
3
 
T[] id;
4
 
@@
5
 
 
6
 
- sizeof(id) / sizeof(T)
7
 
+ ARRAY_SIZE(id)
 
1
// Use the macro ARRAY_SIZE when possible
 
2
//
 
3
// Confidence: High
 
4
// Copyright: (C) Gilles Muller, Julia Lawall, EMN, INRIA, DIKU.  GPLv2.
 
5
// URL: http://coccinelle.lip6.fr/rules/array.html
 
6
// Options: -I ... -all_includes can give more complete results
 
7
virtual org
 
8
virtual patch
 
9
 
 
10
@i@
 
11
@@
 
12
 
 
13
#include <linux/kernel.h>
 
14
 
 
15
/////////////////////////////////////
 
16
/////////////////////////////////////
 
17
@depends on i && patch && !org@
 
18
type T;
 
19
T[] E;
 
20
@@
 
21
 
 
22
- (sizeof(E)/sizeof(*E))
 
23
+ ARRAY_SIZE(E)
 
24
 
 
25
@depends on i && patch && !org@
 
26
type T;
 
27
T[] E;
 
28
@@
 
29
 
 
30
- (sizeof(E)/sizeof(E[...]))
 
31
+ ARRAY_SIZE(E)
 
32
 
 
33
@depends on i && patch && !org@
 
34
type T;
 
35
T[] E;
 
36
@@
 
37
 
 
38
- (sizeof(E)/sizeof(T))
 
39
+ ARRAY_SIZE(E)
 
40
 
 
41
@n_patch depends on patch && !org@
 
42
identifier AS,E;
 
43
@@
 
44
 
 
45
- #define AS(E) ARRAY_SIZE(E)
 
46
 
 
47
@ depends on patch && !org@
 
48
expression E;
 
49
identifier n_patch.AS;
 
50
@@
 
51
 
 
52
- AS(E)
 
53
+ ARRAY_SIZE(E)
 
54
 
 
55
 
 
56
/////////////////////////////////////
 
57
/////////////////////////////////////
 
58
@arr_ptr depends on i && !patch && org@
 
59
type T;
 
60
T[] E;
 
61
position p;
 
62
@@
 
63
 
 
64
 (sizeof(E@p)/sizeof(*E))
 
65
 
 
66
@arr_tab depends on i && !patch && org@
 
67
type T;
 
68
T[] E;
 
69
position p;
 
70
@@
 
71
 
 
72
 (sizeof(E@p)/sizeof(E[...]))
 
73
 
 
74
@arr_typ depends on i && !patch && org@
 
75
type T;
 
76
T[] E;
 
77
position p;
 
78
@@
 
79
 
 
80
 (sizeof(E@p)/sizeof(T))
 
81
 
 
82
@n_org depends on !patch && org@
 
83
identifier AS,E;
 
84
@@
 
85
 
 
86
#define AS(E) ARRAY_SIZE(E)
 
87
 
 
88
@arr_def depends on !patch && org@
 
89
expression E;
 
90
identifier n_org.AS;
 
91
position p;
 
92
@@
 
93
 
 
94
AS@p(E)
 
95
 
 
96
@script:python@
 
97
p << arr_ptr.p;
 
98
e << arr_ptr.E;
 
99
@@
 
100
cocci.print_main(e,p)
 
101
 
 
102
@script:python@
 
103
p << arr_tab.p;
 
104
e << arr_tab.E;
 
105
@@
 
106
cocci.print_main(e,p)
 
107
 
 
108
@script:python@
 
109
p << arr_typ.p;
 
110
e << arr_typ.E;
 
111
@@
 
112
cocci.print_main(e,p)
 
113
 
 
114
@script:python@
 
115
p << arr_def.p;
 
116
e << arr_def.E;
 
117
@@
 
118
cocci.print_main(e,p)