2011-01-11 10 views

cevap

10

GCC malzemeleri size:

Şu

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

o tarafından bir dosya üzerinde yapmak gibi görünüyor çünkü, ne istediğinizi tam olarak yapmayacağım

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

+0

İşlevsel olarak işlev temelinde çalışabilir. Dokümanlardan: "GCC, her pragma'nın konumunu izler ve kaynak dosyada bu noktadan itibaren duruma göre teşhisler yapar. Bu nedenle, bir satırdan sonra ortaya çıkan pragmalar bu satırın neden olduğu teşhisleri etkilemez." –

+2

@Carl: Aslında, bu dokümanlar şu anki geliştirme sürümü için (4.6), verdiğim bağlantıyı kontrol ederseniz 4.5 için geçerli değil. –

+0

oh tamam. Aslında bu belgede herhangi bir sürüm görmedim. Açıklama için teşekkürler. –

0

Sen GCC diagnostic pragma kullanabilirsiniz: o farkında bağlam sanki dosya bazında, ancak gcc (4.6) bir sonraki sürümünde, görünür.

1

Bu biraz eski ama aynı yanıt arıyor karşıya geldi, bu yüzden ben (deneme yanılma yoluyla bulunabilir) benim çözüm sonrası düşündüm:

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

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

#pragma GCC diagnostic pop 

çalışıyor gibi görünüyor. Bazı nedenlerle, diagnostic warning'u kullanmaya çalışmadı. Uyarıyı oluşturan yığın boyutunu değiştirmek mümkün görünmüyor. Ayrıca, sonunda = = gerekir. Belki sıradaki adam bunu bulacak ve biraz zaman kazanacaktır :). Bu 4.6.2 (bir ARM çapraz derleyicide).

John