myfile.cpp:15:6 warning: ‘val‘ may be used uninitialized in this function [-Wmaybe-uninitialized]

本身这个问题很简单,提示也说的很清楚,val没有初始化。
但是,奇怪的地方在于去查看myfile.cpp:15并没有 val 这个变量,myfile.cpp:15 指向了一个函数myfunc()的开头,这个函数里面压根并没有定义val这个变量。甚至,整个myfile.cpp里面也没有定义这个变量。

解决方法:

  1. 经过查找资料发现,myfile.cpp在编译的时候是加了 -O3优化选项的,经过测试发现除去把-O3删掉,问题就会消失,O3优化具体做了什么可以自行google。但问题是我就是需要-O3,那怎么办?
  2. 通过一行行的注释myfile.cpp:myfunc() 进一步定位问题发现,问题出在了某行的一个函数调用上,该函数是一个inline的函数,该inline函数其中的一个形参变量命名是 “val”。考虑到inline函数在执行时就是拷贝到调用处,再考虑到使用了O3, 所以估计是O3在做优化的时候,弄出了一个uninitialized的‘val’吧。所以解决方法就很简单了,把那个inline的函数改成非inline的就可以了。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值