8.177 --strict_warnings

--strict モードではエラーになる診断結果を、可能であれば警告に格下げします。

厳密なエラーをコンパイラが常に格下げできるとは限りません。たとえば、正しいプログラムを構築することによってエラーを回復することができない場合などです。

エラー

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

場合によっては、厳密には不正な違反が検出され、コンパイルが終了したとき、警告の代わりにエラーが生成される場合もあります。以下に例を示します。
#ifdef $Super$
extern void $Super$$__aeabi_idiv0(void); /* intercept __aeabi_idiv0 */
#endif
--strict_warnings を使用してこのコードをコンパイルすると、--dollar オプションを使用しなかった場合に、エラーが生成されます。

void foo(void)
{
    long long i; /* okay in nonstrict C90 */
}
--strict_warnings を使用してこのコードをコンパイルすると、警告メッセージが生成されます。
long long が厳密には不正な場合でも、コンパイルは継続します。
関連する参考文書
8.5 --anachronisms、--no_anachronisms
8.57 --diag_error=tag[,tag,...]
8.58 --diag_remark=tag[,tag,...]
8.62 --diag_warning=tag[,tag,...]
8.177 --strict_warnings
9.19 識別子内のドル記号
1.2 コンパイラのソース言語モード
非機密扱いPDF file icon PDF 版ARM DUI0472LJ
Copyright © 2010-2015 ARM.All rights reserved.