// 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; | |
... | |
}; |