非void函数没有写返回值时的运行行为存在差异
错误信息
1 2 | warning: non-void function does not return a value in all control paths [-Wreturn-type] Trace/breakpoint trap (core dumped) |
问题介绍
编译器出于二进制安全考虑,会在没有返回值的分支插入非法指令,可能会导致运行时coredump。
解决方案
- 为非void函数添加返回值;
- 将没有返回值的函数类型修改为void;
- 使用clang-tidy工具可以识别该类问题并提供修改建议。
父主题: 其它类兼容问题