2.1.112. --strict_warnings

此选项根据所使用的源语言选项,强制实施严格 C 或严格 C++。

--strict_warnings 选项的行为与 --strict 类似,只不过在使用非标准功能时,编译器将发出警告消息而不是错误消息。

错误

--strict_warnings 生效时,如果违反了相关 ISO 标准,则编译器通常会发出警告消息。

可以用常规方式控制诊断消息的严重性。

Note

在某些情况下,如果编译器检测到严重非法行为,则会发出错误消息而不是警告,并会终止编译。 例如:


#ifdef $Super$

extern void $Super$$__aeabi_idiv0(void); /* intercept __aeabi_idiv0 */

#endif

--strict_warnings 编译此代码时会生成错误:

示例


void foo(void)

{

    long long i; /* okay in non-strict C90 */

}

--strict_warnings 编译此代码时会生成警告消息。

编译会继续执行,即使表达式 longlong 严重非法也是如此。

另请参阅

Copyright © 2007 ARM Limited. All rights reserved. ARM DUI 0348AC
Non-Confidential