Example 17 Enabling warnings selectively

$cadvise +wall -pdb testpdb +Ww600 cc -c foo.c

5.4 Interpreting selective warnings as errors

The +Wearg1[,arg2,..,argn] option selectively interprets specified warning messages as errors. arg1 through argn must be valid warning message numbers. This option allows you to enforce a policy to disallow specific warnings by forcing an error at compile time.

+Wearg1[,arg2,..,argn]

Following is the syntax for selectively enabling warnings.

$cadvise +wall -pdb <pdbname> +Wearg1[,arg2,...,argn] compile-cmd <filename>

Following is an example for selectively enabling warnings.

Example 18 Interpreting selective warnings as errors

$cadvise +wall -pdb testpdb +We600 cc -c foo.c

5.5 Disabling warnings in a macro

The +Wmacro:MACRONAME:d1,d2,d3,..dn option disables specified warnings in a macro. MACRONAME is the name of the macro and d1, d2, d3, ..., dn are warning numbers. Specifying -1 suppresses all warnings. This option is not applicable to warning numbers greater than 20000.

NOTE: Conflicts between +W, +Ww and +We options are resolved based on the severity. The +We option is the highest and +W is the lowest.

Following is the syntax for disabling warnings in a macro.

$cadvise +wall -pdb <pdbname> +Wmacro:INITIAL:d1,d2,d3,..dn compile-cmd <filename>

Following is an example for disabling warnings in a macro.

Example 19 Disabling warnings in a macro

$cadvise +wall -pdb testpdb +Wmacro:INITIAL:600,610 cc -c foo.c

5.6 Managing warnings in a source file

#pragma diag_suppress diag_warning diag_error NNNN #pragma diag_default NNNN

Command line options help you to generate diagnostic messages for the entire build or for a specific source file. There are several pragmas available to manage warnings for a specific region within a source file. The use of #pragma diag_suppress within the source code disables generation of warning N after the pragma in the source file. The pragma diag_default restores the default handling for the diagnostic message N. Similarly, diag_warning enables generation of a diagnostic message and diag_error converts a warning to an error. The following example disables warning #2549-D locally:

Example 20 Disabling a warning locally

int i;

#pragma diag_suppress 2549 printf ("i = %d\n", i); #pragma diag_default 2549

NOTE: These pragmas are not applicable to warning numbers greater than 20000.

26 Configuring diagnostic messages