【发布时间】:2018-01-24 07:06:48
【问题描述】:
我有如下代码,我使用 cppcheck 进行静态分析。 我发现它无法报告数据的空指针。
#define MY_FREE(p) if(p) {free(p);(p)=NULL;}
for(i=0; i<10; i++)
{
ret = list_insert(list, data);
if (1 != ret)
{
MY_FREE(data);
}
other_process(data->item);
}
但如果我直接展开宏“MY_FREE”,它就起作用了。
for(i=0; i<10; i++)
{
ret = list_insert(list, data);
if (1 != ret)
{
if(data) {free(data);(data)=NULL;};
}
other_process(data->item);
}
有什么配置可以解决吗?
【问题讨论】:
标签: macros expand static-code-analysis cppcheck