int -> short 내부 형변환...

arome의 이미지

컴파일러는 gcc 3.4.6 - 20060404 입니다.

다음과 같은 소스코드인데요..

-=-=-=-=-
#include<stdio.h>

int test() {
return 1000000;
}

int main(void) {
short a;

a = test();

printf("%d\n", a);

return 0;
}
-=-=-=-=-

보시다시피 int 데이터 값이 short로 implicit하게 변환됩니다.
컴파일 옵션은 -Wall -Wconversion -m32 로 주었습니다만,
워닝을 잡아내지 않네요..
(- 32비트 옵션을 주었으니까 int 크기는 4bytes일 것으로 생각합니다.)

이 정도쯤 되면 Warning 옵션 켰을때 잡아줘야 할 것 같은데요..
이외에도 큰 용량 -> 작은 용량 타입 변환시에 워닝이 잡히지 않습니다.
(short->char, long->short 등)

gcc에서 이런 변환에 대해 워닝을 띄워주는 방법이 있는지요?
없다면, 왜 없는지도 알고 싶습니다.

goguma의 이미지

-Wconversion 옵션이 형변환 오류를 잡아주는 걸로 알고 있었는데...
해보니 안되네요....
저도 당황스러워 졌습니다..ㅡㅡ;
왜 안될까..;;
--------------------------------
스물셋.. 독립.. 열심히 살아보자!!
--------------------------------

--------------------------------
스물셋.. 독립.. 열심히 살아보자!!
--------------------------------