2011-01-11 2 views

답변

10

GCC 공급을 :

현재

http://gcc.gnu.org/onlinedocs/gcc-4.5.2/gcc/Diagnostic-Pragmas.html#Diagnostic-Pragmas

하여 파일에 그것을 할 것으로 보인다 이후, 당신이 원하는 것을 정확히하지 않을 것이다

http://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html#Diagnostic-Pragmas

+0

기능별로 작동 할 수 있습니다. 문서에서 : "GCC는 각 pragma의 위치를 ​​추적하고 소스 파일의 해당 지점에서 상태에 따라 진단을 실행하므로 라인 이후에 발생하는 pragma는 해당 라인으로 인한 진단에 영향을 미치지 않습니다." –

+2

@Carl : 사실,이 문서는 현재 개발 버전 (4.6) 용이므로, 필자가 제공 한 링크를 확인하면 4.5에 해당되지 않습니다. –

+0

오케이. 실제로 해당 문서의 버전 관리가 표시되지 않았습니다. 해명 해줘서 고마워. –

0

당신은 GCC diagnostic pragma을 사용할 수 있습니다 : 그것은 알고 문맥 인 것처럼 파일 기초는하지만, GCC (4.6)의 다음 버전에서,이 나타납니다.

1

이 조금 오래된, 그러나 나는 같은 대답을 찾고 그것을 통해 온, 그래서 내가 (시행 착오에 의해 발견) 내 솔루션을 게시 할 거라고 생각 :

#pragma GCC diagnostic push 
#pragma GCC diagnostic ignored "-Wframe-larger-than=" 

void func() 
{ int x[2000] = {}; printf("%d",x[1]); }  

#pragma GCC diagnostic pop 

가 작동하는 것 같다합니다. 어떤 이유로 든 diagnostic warning을 사용하려고 시도하지 않았습니다. 경고를 생성하는 스택 크기를 변경하는 것은 불가능합니다. 또한 끝에 =가 필요합니다. 어쩌면 다음 사람이 이것을 발견하고 시간을 절약 할 수 있습니다 :). 4.6.2입니다 (ARM 크로스 컴파일러에서).

John

관련 문제