[질문] mips64-gcc 컴파일 최적화 관련 질문(?)
글쓴이: freemckang / 작성시간: 월, 2007/07/09 - 2:20오후
제목도 사실 확실한 건 아니구요... 일단 코드부터 말씀드리겠습니다.
for (i = 0; i < argc; i++)
{
if (Q_CMD_EQUAL(argv[i], "foo") && Q_CMD_EQUAL (argv[++i], "bam"))
{
printf ("%s\n", argv[++i]);
}
...
여기서 argc는 3이고요, argv[0]은 "foo", argv[1]은 "bam", argv[2]가 "bar"라고 하였을 때에, bar가 출력이 되어야 될 거라고 머릿속으로는 생각이 듭니다.
실제로, i386 gcc를 사용해서 컴파일 했던 지난 버전에서는, 이것이 무리없이 동작하였는데요, 이번에 mips64 gcc를 사용해서 컴파일 했는데 결과가 (null)이 되더군요. 음... 전임자의 코드를 아무 의심없이 그대로 쓴걸 일단 깊이 반성하고 있습니다.. :( 그런데 머릿속으로 아무리 생각을 해봐도 "bar"가 출력이 되어야 하는건 아닌가 생각이 듭니다만, 혹시나 최적화와 관련된 문제가 있는건지, (mips64-gcc v3.4.5를 사용하고 -Os 최적화 옵션을 사용합니다) 앞으로 이런 코드를 짜지 않아야 하겠다고 생각은 했지만 과연 무엇이 문제인지요..?
날씨가 매우 더운데 건강 해치지 않도록 조심하세요!! (냉방병도 조심하셔야겠네요)
Forums:
확실히 문제가 있는
확실히 문제가 있는 코드입니다.
for에서 i++ 하고 argv[++i] 하면 꼬일 수도 있겠네요.
argv[i+1] 정도로 해야...
일단 코드에는
일단 코드에는 이상이 없는것 같은데 Q_CMD_EQUAL 매크로가 어케되는지 모르겠네요
디버거를 사용하실수 있는 상황이 된다면 주의깊게 디버깅해보세요.
-- 아쉬운 하루 되세요 --
-- 아쉬운 하루 되세요 --
댓글 달기