匹配* ptr =值与coccinelle

时间:2015-08-10 11:12:19

标签: c coccinelle

我想匹配

<?php set_include_path( get_include_path() . PATH_SEPARATOR . $_SERVER['DOCUMENT_ROOT'] ); ?>

在C代码中,然后用

替换它
*ptr=value;

CHECK_PTR()是一个检查ptr是否为空的宏

我写了一个Coccinelle脚本来完成这项工作

CHECK_PTR(ptr)
*ptr=value;

但由于明星运营商,这不起作用。 在这里,我使用反斜杠来逃避*但是这并没有给出任何结果

请你帮帮我

1 个答案:

答案 0 :(得分:1)

前几天我遇到了同样的问题,这就是你问题的答案

&#34;第0列与其他列不同。只是在你面前的空间* 一切都会好的。

这个问题通常出现在括号中。例如,如果你想 为函数添加新的最后一个参数,您可能会说:

f(27
+ , 145
)

在这种情况下,Coccinelle可以发现潜在的问题和意志 抱怨。因为第0列中的(|和)用于析取(一组) oo不同的可能匹配和转换。对于*,虽然它 不知道你想要的是什么。&#34; 朱莉娅·劳尔