如何为函数定义获取“假设没有签名溢出”警告?
warning: assuming signed overflow does not occur when assuming that
(X + c) < X is always false [-Wstrict-overflow]
unsigned int index(const ItemRequest& request)
^
可以找到功能正文here。
这看起来很奇怪,因为返回值只是ushort或uint。
答案 0 :(得分:1)
因为函数定义包含函数体。身体显然可以包含签名溢出。
您展示的部分在参数列表后面既不包含;
也不包含{
,所以它无论如何都不完整。
如果编译器在查找诊断的确切位置时遇到问题,您可能会收到错误。当诊断是由优化器引起时,这种情况尤为常见,优化器正在处理已经经历过相当多变换的代码。