诊断消息控制
在 IBM® XL C/C++ for AIX® 16.1.0 或更低版本的编译器发行版的基于 XL 的经典前端中,当编译器在编译 C 或 C++ 源程序时迂到编程错误时,它会向标准错误设备或列表文件发出诊断消息。 诊断消息包含消息号、消息严重性和消息描述文本等。
17.1.0Open XL C/C++ for AIXIBM 采用Clang基础设施。 Clang 中的诊断实现与经典 XL 编译器完全不同。 Clang 提供了一组具有表现力的诊断消息,这些消息没有单独的消息号。 在 IBMOpen XL C/C++ for AIX17.1.0 中,使用以下任一 Clang 选项或 pragma 来抑制或控制诊断消息的生成:
- -W[no-] 格式的 Clang 选项
- #pragma clang diagnostic ignored
示例
//t.c
#include <stdio.h>
void f(int x) {
printf("%f", x);
}使用以下命令编译
t.c:ibm-clang t.c -c编译器发出以下警告消息:
t.c:3:30: warning: format specifies type 'double' but the argument has type 'int' [-Wformat]
您可以指定 -Wno-format 选项以禁止该警告消息:
ibm-clang t.c -c -Wno-format然后,编译器编译该程序,并且不会发出任何警告消息。