int* foo () { if(x) return p; // what if control reaches here }
这通常会导致崩溃并难以调试问题.为什么标准没有强制执行非空函数的最终返回? (编译器为错误的返回值生成错误)
gcc / msvc中是否有任何标志强制执行? (类似的结果)
warning: control reaches end of non-void function
编辑:或更具体地 – 回归型.