Sun Studio 12:C 用户指南

4.3.9 -errchk=l(, l)

执行l 指定的附加检查。缺省值为 -errchk=%none。指定 -errchk 与指定 -errchk=%all 等效。l 是一个以逗号分隔的检查列表,由下表中的一个或多个值组成。例如,-errchk=longptr64,structarg

表 4–1 -errchk 标志

值 

含义 

%all

执行 -errchk 的所有检查。

%none

不执行 -errchk 的任何检查。这是缺省值。

[no%]locfmtchk

lint 的第一遍检查期间检查类似 printf 的格式字符串。无论是否使用 -errchk=locfmtchklint 都会在第二遍检查期间检查类似 printf 的格式字符串。

[no%]longptr64

检查是否可移植到其长整型和指针大小为 64 位、平整型大小为 32 位的环境。即使使用了显式强制类型转换,也检查指针表达式和长整型表达式是否赋值为平整型。 

[no%]structarg

检查通过值传递的结构参数,并在形式参数类型未知时报告情况。 

[no%]parentheses

检查代码中优先级的透明度。使用此选项可增强代码的可维护性。如果 -errchk=parentheses 返回一个警告,请考虑使用额外的括号明确地表示代码中操作的优先级。

[no%]signext

检查如下情况:标准 ISO C 值保留规则允许在无符号整型的表达式中进行带符号整型值的符号扩展。仅当同时指定 -errchk=longptr64 时,该选项才会产生错误消息。

[no%]sizematch

检查较长整数到较短整数的赋值并发出警告。对于具有不同符号的相同长度的整数之间的赋值(无符号整型数获取带符号整型数),也会发出这些警告。