有没有一种方法可以配置cppcheck并为alloc / dealloc指定位置参数编号

时间:2019-01-08 17:27:50

标签: static-analysis cppcheck

我使用以下功能:

  • flist_create(flist *cont)-为以下实例分配内存 结构
  • flist_destroy(flist *cont)-释放内存
  • flist_put(flist *cont, char *val)-转移val的内存所有权 继续(flist_destroy稍后会释放该内存,作为清理续的一部分)

对于flist本身,我可以这样做:

 <memory>
     <alloc>flist_create</alloc>
     <dealloc>flist_destroy</dealloc>
 </memory>

但是,我不能将flist_put添加为dealloc(以释放值),因为cppcheck会认为应该释放flist)。

有什么方法可以配置cppcheck来告诉它,只有指定的位置参数才应考虑用于dealloc?

1 个答案:

答案 0 :(得分:1)

查看cppcheck的源代码后,我找到了答案:

 <memory>
  <alloc>flist_create</alloc>
  <dealloc>flist_destroy</dealloc>
  <dealloc arg="2">flist_put</dealloc>
 </memory>

我发现cppcheck手册有所欠缺,因为它并没有记录在案的cfg文件的所有可能用途...