メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

ソース コードの言語 (-lang)

ソース ファイルの言語の指定

説明

ソース ファイルの言語を指定します。その他の構成オプションは言語の選択によって変化するため、他のオプションを指定する前にこのオプションを選択してください。このオプションは、動的テストと静的解析の両方に適用されます。

プロジェクトの設定中にファイルを追加すると、言語の選択が既定値から変更される場合があります。

追加したファイルソース コードの言語
拡張子が .c のファイルのみC
拡張子が .cpp または .cc のファイルのみCPP
拡張子が .c.cpp および .cc のファイルC-CPP

オプションの設定

以下のいずれかの方法を使用してオプションを設定します。

  • Polyspace® ユーザー インターフェイス (デスクトップ製品のみ): プロジェクト構成で [ターゲットおよびコンパイラ] ノードを選択してから、このオプションの値を選択します。ソース コードの言語が自動的に判断される可能性がある方法については、依存関係を参照してください。

  • Polyspace Platform ユーザー インターフェイス (デスクトップ製品のみ): プロジェクト構成の [ビルド] タブで [ターゲットおよびコンパイラ] ノードを選択してから、このオプションの値を選択します。

  • コマンド ラインオプション ファイル: オプション -lang を使用します。コマンド ライン情報を参照してください。

設定

既定値: ファイル拡張子に基づく。

C

プロジェクトに含まれているのが C ファイルのみである場合は、この設定を選択します。この値により、C 言語の規則に対する検証が制限されます。すべてのファイルは、そのファイル拡張子とは無関係に C ファイルとして解釈されます。

CPP

プロジェクトに含まれているのが C++ ファイルのみである場合は、この設定を選択します。この値により、C++ 言語の規則に対する検証が制限されます。すべてのファイルは、そのファイル拡張子とは無関係に C++ ファイルとして解釈されます。

C-CPP

プロジェクトに C ソース ファイルと C++ ソース ファイルが含まれている場合は、この設定を選択します。この値により、C 言語および C++ 言語の規則が許可されます。.c ファイルは C ファイルとして解釈されます。それ以外のファイル拡張子は C++ ファイルとして解釈されます。

依存関係

  • 言語オプションにより、さまざまなオプションおよびオプション値が有効または無効になります。一部のオプションは言語の選択によって変化します。詳細は、個々の解析オプションのページを参照してください。

  • polyspace-configure コマンドまたは関数 polyspaceConfigure を使用してビルド システムから Polyspace プロジェクトまたはオプション ファイルを作成する場合、このオプションの値はファイル拡張子によって決まります。

    .c ファイルと .cpp ファイルの両方を含むプロジェクトでは、言語オプション [C-CPP] が使用されます。解析中、各ファイルはファイル拡張子により決定された言語規格に基づいてコンパイルされます。コンパイルの後、Polyspace はこうした言語の混在するプロジェクトを C++ プロジェクトとして検証します。

ヒント

  • .c ファイルと .cpp ファイルの両方が含まれているプロジェクトで、C-CPP 言語を使用する場合、各ファイルはファイル拡張子により決定された言語規格に基づいてコンパイルされます。コンパイルの後、Polyspace はこうした言語の混在するプロジェクトを C++ プロジェクトとして検証します。

    特に、解析ではすべてのファイルが C++ ファイルとしてリンクされます。C と C++ ではリンク動作に違いがあるため、C と C++ の混合プロジェクトの C ファイルでのリンクのエラーや警告は、C-CPP 言語と C 言語でコンパイルされる場合で異なることがあります。

  • C コンパイラと C++ コンパイラでは、仮定に若干の違いがあります。たとえば、C コンパイラでは enum の潜在型は int です。一方、C++ コンパイラでは enum の潜在型は処理系定義です。言語に [C-CPP] を使用すると、C コンパイラと C++ コンパイラの仮定の違いから解析の失敗が引き起こされる可能性があります。

コマンド ライン情報

パラメーター: -lang
値: c | cpp| c-cpp
既定値: ファイル拡張子に基づく
例 (Bug Finder): polyspace-bug-finder -lang c-cpp -sources "file1.c,file2.cpp"
例 (Code Prover): polyspace-code-prover -lang cpp -sources "file1.cpp,file2.cpp"
例 (Bug Finder Server): polyspace-bug-finder-server -lang c-cpp -sources "file1.c,file2.cpp"
例 (Code Prover Server): polyspace-code-prover-server -lang cpp -sources "file1.cpp,file2.cpp"
例 (Bug Finder): polyspace-bug-finder -lang c -sources "file1.c,file2.c"
例 (Code Prover): polyspace-code-prover -lang c -sources "file1.c,file2.c"
例 (Bug Finder Server): polyspace-bug-finder-server -lang c -sources "file1.c,file2.c"
例 (Code Prover Server): polyspace-code-prover-server -lang c -sources "file1.c,file2.c"