8.176 --strict、--no_strict

使用されたソース言語に応じて、厳密な C または厳密な C++ への準拠の程度を指定できます。

--strict が指定されると、以下のようになります。
  • ISO C または ISO C++ と競合する機能が無効にされます。
  • 非標準機能が使用されている場合、エラーメッセージが表示されます。

デフォルト

デフォルトは --no_strict です。

使用法

--strict を指定すると、以下の標準への準拠が強く要求されます。
ISO C90
  • ISO/IEC 9899:1990, the 1990 International Standard for C
  • ISO/IEC 9899 AM1, the 1995 Normative Addendum 1
ISO C99
ISO/IEC 9899:1999, the 1999 International Standard for C
ISO C++
ISO/IEC 14822:2003, the 2003 International Standard for C++

エラー

--strict が有効になっており、関連する ISO 標準規格の違反が発生した場合は、エラーメッセージが表示されます。
診断メッセージの重大度は、--diag_error--diag_remark、および --diag_warning の各オプションを使用することで、制御できます。

void foo(void)
{
    long long i; /* okay in nonstrict C90 */
}
--strict を使用してこのコードをコンパイルすると、エラーが生成されます。
関連する参考文書
8.5 --anachronisms、--no_anachronisms
8.23 --c90
8.24 --c99
8.92 --gnu
8.38 --cpp
8.39 --cpp11
8.40 --cpp_compat
1.2 コンパイラのソース言語モード
2.7 コンパイラで認識されるファイル名の接尾文字
8.57 --diag_error=tag[,tag,...]
8.58 --diag_remark=tag[,tag,...]
8.62 --diag_warning=tag[,tag,...]
8.177 --strict_warnings
9.19 識別子内のドル記号
非機密扱いPDF file icon PDF 版ARM DUI0472LJ
Copyright © 2010-2015 ARM.All rights reserved.