2011-04-13 3 views
6

잊어 버린 신고서에 대해 gcc 경고를 사용하려면 어떻게해야합니까?잊혀진 return 문에 대해 gcc 경고를 설정하는 방법은 무엇입니까?

는 다음과 같은 경우에 저를 경고하도록되어 :

int foo() { 
    std::cout << "haha"; 
} 

나는 -Wall가 경고 것을집니다 알고 있지만, 너무 많은 경고를 할 수 있습니다.

+0

당신이 -Wextra/-ansi/-pedantic을 시도 했습니까? – halfdan

+14

'-Wall'은 너무 많은 다른 경고를 가능하게합니까? 그게 처음입니다. – GManNickG

+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가 아닌 함수에서 반환 값이없는 모든 return 문에 대해 경고합니다 (함수 본문의 끝 부분은 값없이 반환되는 것으로 간주됩니다) 및 반환 유형이 void 인 함수입니다.

그러나 -Wall을 켜면 코드가 너무 많은 경고를 받으면 코드를 수정하는 것이 좋습니다.

+5

+1! –

-1

항상 사용

의 gcc -g -ansi -pedantic -Wall -o

관련 문제