Everything

 

-misra2012 【Professional版のみ】 【V2.04.00以降】


コンパイル・オプション / ソースオプション

[指定形式]

-misra2012= {
              all
              | apply=<ルール番号>[,...]
              | ignore=<ルール番号>[,...]
              | required
              | required_add=<ルール番号>[,...]
              | required_remove=<ルール番号>[,...]
              | <ファイル名>}

[詳細説明]

-

MISRA-C:2012のルールチェック機能を有効にし、そのチェック対象を指定します。

-

misra2012=allオプション指定時は、サポートしているすべてのルールをチェック対象とします。

-

misra2012=apply=<ルール番号>[,<ルール番号>,...]オプション指定時は、サポートしているルールのうち、指定されたルール番号をチェック対象とします。

-

misra2012=ignore=<ルール番号>[,<ルール番号>,...]オプション指定時は、サポートしているルールのうち、指定されたルール番号以外のルールをチェック対象とします。

-

misra2012=requiredオプション指定時は、サポートしているルールのうち、ルールの分類が“mandatory”および“required”になっているルールをチェック対象とします。

-

misra2012=required_add=<ルール番号>[,<ルール番号>,...]オプション指定時は、サポートしているルールのうち、ルールの分類が“mandatory”および“required”になっているルールと指定されたルール番号をチェック対象とします。

-

misra2012=required_remove=<ルール番号>[,<ルール番号>,...]オプション指定時は、サポートしているルールのうち、ルールの分類が“required”になっているルールから指定されたルール番号を除いたルール番号をチェック対象とします。

-

misra2012 =<ファイル名>オプション指定時は、サポートしているルールのうち、指定されたファイル名に記載されたルール番号をチェック対象とします。ファイル名で指定されたファイル内の記述は、1ルールを1行で記述します。

-

ルール番号は、10進数値およびピリオド(.)で指定してください。

-

MISRA-C:2012のチェック項目に該当した場合、次の形式でメッセージを表示します。
ファイル名(行番号) : M0523086 Rule ルール番号: メッセージ

-

misra2012=<ファイル名> の指定を複数回行った場合は、最後に指定したファイルのみ有効になります。

[備考]

-

misra2012オプションは複数回指定できます。ただし、複数の種類を混在させた場合は、最後に記述した種類及びそれに連続する同じ種類の指定だけを有効とします。

(指定例)

... -misra2012=ignore=3.1

-misra2012=required_add=4.1 -misra2012=apply=4.2

-misra2012=apply=5.2 ...

ignore, apply, required_addの3種類の-misra2012が同時に指定されていますが、最後に連続して指定した2つのapplyの指定のみが有効になります。その結果、ルール4.2と5.2がチェック対象になります。

-

サポートしていないルール番号を、各オプションの<ルール番号>に指定した場合はエラーF0523031となり、そこで処理を中止します。

-

misra2012=<ファイル名>で指定したルールファイルがオープンできない場合、エラーF0523029となります。また、ルールファイルからルール番号が取り出せない場合は、エラーF0523030となり、いずれの場合もそこで処理を中止します。

-

langオプションでcppまたはecppが選択された場合、本オプションを無視します。

-

output=prepと同時に指定した場合、本オプションを無視します。

-

lang=c99と同時に指定した場合、C90/C99共通ルールはC99の範囲でチェックします。

-

#pragmaなどの拡張機能を用いたソースでは、ルールチェックの一部が抑止されます。
抑止される内容は、check_language_extensionオプションの項目を参照下さい。

-

misra2012 オプションで表示されるMISRA診断メッセージは、change_messageオプションで制御することはできません。

-

MISRA-C:2004ルールによるソース・チェックを同時に行うことはできません。

-

V3.02.00以降でサポートしているMISRA-C:2012のルール番号を次に示します。

2.2 2.6 2.7

3.1 3.2

4.1 4.2

5.1*2 5.2 5.3 5.4 5.5 5.6*2 5.7*2 5.8*2 5.9*2

6.1 6.2

7.1 7.2 7.3 7.4

8.1 8.2 8.3*2 8.4 8.5*3 8.6*3 8.8 8.9 8.11 8.12 8.13 8.14

9.1 9.2 9.3 9.4 9.5

10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8

11.1 11.2 11.3 11.4 11.5 11.6 11.7 11.8 11.9

12.1 12.2 12.3 12.4 12.5

13.1 13.2 13.3 13.4 13.5 13.6

14.2 14.3 14.4

15.1 15.2 15.3 15.4 15.5 15.6 15.7

16.1 16.2 16.3 16.4 16.5 16.6 16.7

17.1 17.3 17.4 17.5 17.6 17.7 17.8

18.4 18.5 18.7

19.2

20.1 20.2 20.3 20.4 20.5 20.6 20.7 20.8 20.9 20.10 20.11 20.12 20.13 20.14

21.1 21.2 21.3 21.4 21.5 21.6 21.7 21.8*1 21.9 21.10 21.11 21.12 21.13 21.15 21.16

 

(*1) MISRA C:2012 Amendment 1に沿ってチェックします(getenvをチェックしません)。

(*2) オプション-misra_intermoduleを指定した場合、複数ファイルにまたがった解析が可能になります。

(*3) オプション-misra_intermoduleを指定した場合だけ有効になります。

[使用例]

-

次の例では、ignore, apply, required_addの3種類の-misra2012が同時に指定されていますが、最後に連続して指定した2つのapplyの指定のみが有効になります。その結果、ルール4.2と5.2がチェック対象になります。

-misra2012=ignore=3.1
-misra2012=required_add=4.1 -misra2012=apply=4.2
-misra2012=apply=5.2