类似于以下内容的一种转换适用于func_1(&something->field)
,当某物为foo_t
时,但不能捕获其中v本身是诸如func_1(&something->v->field)
之类的字段的情况
@@
typedef foo_t;
foo_t *v;
@@
- func_1(&v->field)
+ func_2(v)
另一方面,如果我使用这样的表达式:
@@
expression v;
@@
- func_1(&v->field)
+ func_2(v)
它可以工作,但是过于渴望并且可能匹配类型不是foo_t
的情况,只是因为其他类型具有相同的字段名称。
是否有一种方法可以使表达式匹配,但将表达式类型限制为foo_t
?