診断メッセージ制御

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
その後、コンパイラーは、警告メッセージを出さずにプログラムをコンパイルします。

関連情報