cppcheck 静态检查工具没有检查出我的代码没有返回值,怎么办?

bandaoyu 2021-04-03 07:23:22
最近写了个函数,忘记返回值,但是用cppcheck和腾讯的TscanCode均没有检测出来,实在无语。

我随便写一个函数:

int num;

int *myTest(void)

{

#

}

实际上面的函数本意上返回num的地址,结果忘记了写return,但是

静态检测却检测不出来。



=================补充=========

很多人疑问,为什么我不用gcc自带的检测功能。

其实是这样的:

就是项目特别的大。以前的代码有很多的警告(历史遗留问题),所以gcc告警打开的话,我们自己那部分的代码的警告会被淹没在历史的警告当中很难挑出来,所以我们想找一个工具,指定检测我们自己的文件夹内的代码,其他人的我们就不管了(太多了,不敢动,怕搞出bug)。
...全文
555 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
bandaoyu 2021-04-04
  • 打赏
  • 举报
回复
@all,大家好。我搞定了。gcc 加了 -Wall 选项
bandaoyu 2021-04-04
  • 打赏
  • 举报
回复
引用 5 楼 yshuise 的回复:
这个能编译过?
是呀。诡异的很。而且连告警都没有 源码: #include <iostream> int num=0 int *getNumAddr() { &num } int main() { int *addr=0; addr=getNumAddr(); std::cout <<"addr is:"<<addr<<std::endl; }
yshuise 2021-04-04
  • 打赏
  • 举报
回复
这个能编译过?
gouyanfen 2021-04-04
  • 打赏
  • 举报
回复
引用 3 楼 bandaoyu 的回复:
引用 2 楼 gouyanfen 的回复:
这种函数直接优化掉了
哦? 是这样的吗? 但是我用cppcheck来检测,无关优化呀
cppcheck并不会检查语法错误吧,主要是检查代码中的bug
bandaoyu 2021-04-04
  • 打赏
  • 举报
回复
引用 2 楼 gouyanfen 的回复:
这种函数直接优化掉了
哦? 是这样的吗? 但是我用cppcheck来检测,无关优化呀
gouyanfen 2021-04-03
  • 打赏
  • 举报
回复
这种函数直接优化掉了
羽飞 2021-04-03
  • 打赏
  • 举报
回复
没用过cppcheck,但是这个写法,编译不会报错吗

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧