診断メッセージ制御
IBM® XL C/C++ for AIX® 16.1.0 以前のコンパイラー・リリースのクラシック XL ベース・フロントエンドでは、C または C++ ソース・プログラムのコンパイル中にコンパイラーがプログラミング・エラーを検出すると、標準エラー・デバイスまたはリスト・ファイルに診断メッセージを発行します。 診断メッセージには、メッセージ番号、メッセージ重大度、メッセージ説明テキストなどが含まれています。
IBM Open XL C/C++ for AIX 17.1.1 は、Clang インフラストラクチャーを採用しています。 Clang での診断の実装は、従来の XL コンパイラーの実装とはまったく異なります。 Clang は、個々のメッセージ番号を持たない表現力豊かな一連の診断メッセージを提供します。 IBM Open XL C/C++ for AIX 17.1.1では、以下の Clang オプションまたはプラグマのいずれかを使用して、診断メッセージの生成を抑止または制御します。
- -W[no-] 形式での Clang オプション
- #pragma clang 診断が無視されました
例
//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
その後、コンパイラーは、警告メッセージを出さずにプログラムをコンパイルします。