Community Translation - GCC Warnings Diagnostic in PSoC Creator - KBA225431

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
MotooTanaka
Level 9
Level 9
Distributor - Marubun (Japan)
First comment on blog Beta tester First comment on KBA

Hi,

I'd like to translate KBA225431 into Japanese.

moto

Original KBA: KBA225431

GCC Warnings Diagnostic in PSoC Creator - KBA225431

Translated by: MoTa_728816

==============================

タイトル: PSoC Creator での GCC ウォーニング診断設定 - KBA225431

質問: PSoC Creator™ で GCC のウォーニングはどのように診断設定できるのですか?

回答:

PSoC Creator はコードのエラーやウォーニング診断に GCC コンパイラを使用して結果を Notice List に表示します。GCC は診断対象種ごとにその診断を有効または無効にすることを許しますので診断対象の設定を変更することが可能です。ウォーニング対象の設定は:

  • コンパイラのコマンドラインオプション
  • pragma による GCC 診断設定

手法 1: コンパイラのコマンドラインオプションを使用する

コマンドラインはカスタムフラグを使用して実行時のウォーニング対象を設定します。カスタムフラグの一覧は こちら. をご参照ください。

この方法はグローバル設定でコード全体に反映されます。図 1 のようにカスタムフラグを Build Settings に追加してください。

図 1. カスタムフラグを追加する

001-pastedImage_6.png

手法 2: pragma を使用した GCC の診断設定

pragma は診断の種類を変更するのに使用されます。診断設定用 pragma の詳細は こちら をご参照ください。この手法はグローバル設定も行えますが、主にコードの特定部位の診断設定に使用されます。pragma 指示子は下記のようにコードに直接追加されます:

書式:

#pragma GCC diagnostic <kind> <option>

ここで、

<kind> は error, warning, ignore のどれか

<option> はコマンドラインオプションに相当する文字列

使用例:

#pragma GCC diagnostic ignored “-Wunused-variable” //これで使用していない変数に関するウォーニングは無視されるようになります

よくある質問 (FAQ) :

出力ウィンドウや Notice List に表示されているウォーニングを無効にするのにはどうしたら良いですか?

Build Settings の Compiler > Command Line 内の Custom Flags のフィールドにカスタムフラグ “-w” をお使いください。

コードの特定部位に診断を適用するにはどうしたら良いですか?

pragma は診断対象部分の先頭と最後を指定するのに push と pop オプションを提供しています。

使用例:

     #pragma GCC diagnostic push   // 1行目

     #pragma GCC diagnostic ignored “-Wunused-variable”// 2行目

     #pragma GCC diagnostic pop   // 20行目

この例ではコードの3行目から20行目までの間に使用されていない変数があっても無視されてウォーニングは発行されません。同様に、例のコード中の ignored を error に変更するとコードのその部分のエラーは無視されるようになります。

pragma の書式で option フィールドには何を記載したら良いのですか?

PSoC Creator でコードをコンパイルすると、全てのウォーニングには pragma オプションも合わせて表示されます。

図 2. pragma オプション

002-pastedImage_16.png赤枠でハイライトされた部分が pragma オプションです。

ウォーニングを全てエラーとして表示するのにはどうしたら良いですか?

Build Settings 中で "-Werror" フラグを使用してください。

ある特定のウォーニング、例えば unused variable をエラーとするのにはどうしたら良いですか?

もしコマンドラインオプションを使用しているのであれば、“-Werror=unused-varibale” フラグを Build Settings の中で使用してください。

もし GCC の pragma を使用しているのであれば、下記の行を使用してください:

#pragma GCC diagnostic error “-Wunused-variable”

どちらの手法がより高い優先度を持ちますか?

どちらの手法にも診断の優先度が適用されます; ignore > warning > error 。その為、優先度の高い設定を持つ手法の設定が適用されます。

ウォーニングを無効にした上で Notice List  に転送するにはどうしたら良いですか?

PSoC Creator はコンパイラの出力を監視して正規表現を使用してツールチェーン出力からエラーやウォーニングを検出するシステムを持っています。しかし新しい書式 (例えば、#pragma 診断設定) を検出できるシステムはありませんので、Notice List にそれらの情報表示をすることはできません。

==============================

15-Apr-2020

moto

0 Likes
2 Replies
JennaJo
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

Hello, Tanaka-san

We receive your translation, it will be published to KBA to Community.

After upload, You will receive the points as the word of KBA.

Due to the current volume of works (waiting review, etc.), Please bear with me for the delayed the response.

It could be delayed, but it will be processed soon.

Thanks for your contribution to CDC!

Will keep you update the status.

Thanks,

Jenna Jo

Jenna Jo
JennaJo
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

Hello, Tanaka-san

Sorry for late updates,

This KBA has been published and you will received the points.

Thanks for your work!

Regards,

Jenna

PSoC Creator での GCC ウォーニング診断設定 - KBA225431- Community Translated (JA)

Jenna Jo
0 Likes