2011-01-11 3 views

答えて

10

GCC用品あなたを:

現在

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

して、ファイルにそれを行うように見えるので、それは、あなたが望むものを正確に行うことはありませんファイル単位が、それは文脈認識しているかのようにgccの次のバージョン(4.6)で、それが表示されます:あなたはGCC diagnostic pragmaを使用することができます

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

+0

これは機能ごとに機能します。ドキュメントから: "GCCは各プラグマの位置を追跡し、ソースファイル内のその時点の状態に応じて診断を発行します。したがって、行の後に現れるプラグマは、その行によって引き起こされる診断に影響しません。 –

+2

@Carl:実際には、これらのドキュメントは現在の開発バージョン(4.6)用ですので、私が与えたリンクをチェックすると4.5には当てはまりません。 –

+0

よろしいですか?私は、実際にそのドキュメントのバージョン管理を見ていませんでした。説明をありがとう。 –

0

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クロスコンパイラの場合)です。

ジョン

関連する問題