インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

GS

バッファー・オーバーランを検出するコードを生成するかどうかを指定します。

構文

Linux* および macOS*:

なし

Windows*:

/GS[:keyword]

/GS-

引数

keyword

コンパイラーが使用するスタック保護ヒューリスティックのレベルを指定します。設定可能な値は以下のとおりです。

off

バッファー・オーバーランを無視します。これは /GS- と同じです。

partial

Microsoft* Visual Studio* 2008 と互換性のあるスタック保護レベルを指定します。

strong

最高レベルのスタック・セキュリティー・チェックを行います。この設定は、より新しいバージョンの Microsoft* Visual Studio* のスタック保護ヒューリスティックと互換性があります。これは、keyword なしで /GS を指定するのと同じです。

デフォルト

/GS-

コンパイラーは、バッファー・オーバーランを検出しません。

説明

このオプションは、関数のリターンアドレス、例外ハンドラーアドレス、または特定の種類のパラメーターを上書きするバッファー・オーバーランを検出するコードを生成するかどうかを指定します。

このオプションは、Microsoft* との互換性のために追加されました。

Visual Studio* 2008 以降、/GS オプションの Microsoft* 実装が拡張されました (例えば、より多くのルーチンが保護されるようになりました)。新しいヒューリスティックは、一部のプログラムのパフォーマンスに影響します。その場合、/GS:partial を指定することでパフォーマンスが向上する可能性があります。

/GS オプションの詳細は、Microsoft* のドキュメントを参照してください。

IDE オプション

Visual Studio*: [Code Generation (コード生成)] > [Buffer Security Check (バッファー セキュリティー チェック)]

Eclipse*: なし

Xcode*: なし

代替オプション

Linux* および macOS*: -fstack-security-check

Windows*: なし

関連情報