summaryrefslogtreecommitdiffstats
path: root/scripts/coccinelle/qom-parent-type.cocci
blob: 9afb3edd97fb447d10fd79be8766c3745f40fe04 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// Highlight object declarations that don't look like object class but
// accidentally inherit from it.

@match@
identifier obj_t, fld;
type parent_t =~ ".*Class$";
@@
struct obj_t {
    parent_t fld;
    ...
};

@script:python filter depends on match@
obj_t << match.obj_t;
@@
is_class_obj = obj_t.endswith('Class')
cocci.include_match(not is_class_obj)

@replacement depends on filter@
identifier match.obj_t, match.fld;
type match.parent_t;
@@
struct obj_t {
*   parent_t fld;
    ...
};