如何为遗忘的退货声明启用gcc警告?
应该在以下情况下警告我:
int foo() {
std::cout << "haha";
}
我知道-Wall
会发出警告,但它会启用太多其他警告。
答案 0 :(得分:18)
根据gcc的online documentation,-Wall
开启:
-Waddress
-Warray-bounds (only with -O2)
-Wc++0x-compat
-Wchar-subscripts
-Wenum-compare (in C/Objc; this is on by default in C++)
-Wimplicit-int (C and Objective-C only)
-Wimplicit-function-declaration (C and Objective-C only)
-Wcomment
-Wformat
-Wmain (only for C/ObjC and unless -ffreestanding)
-Wmissing-braces
-Wnonnull
-Wparentheses
-Wpointer-sign
-Wreorder
-Wreturn-type
-Wsequence-point
-Wsign-compare (only in C++)
-Wstrict-aliasing
-Wstrict-overflow=1
-Wswitch
-Wtrigraphs
-Wuninitialized
-Wunknown-pragmas
-Wunused-function
-Wunused-label
-Wunused-value
-Wunused-variable
-Wvolatile-register-var
其中,-Wreturn-type
似乎可以解决问题:
每当使用默认为int的返回类型定义函数时发出警告。另外警告任何返回值没有返回值的返回值没有返回值(从函数体的末尾掉下来被认为是没有值返回),以及关于返回语句在函数中使用表达式,其返回类型为void。
但是,如果启用-Wall
会使您的代码有太多警告,我建议您修改代码!
答案 1 :(得分:-1)
始终使用:
gcc -g -ansi -pedantic -Wall -o