Tutorial part 5: warnings

So far we’ve only emitted errors, but other kinds of diagnostic are possible, such as warnings.

We can select different kinds of diagnostic via diagnostic_level when calling diagnostic_begin():

  diagnostic *d = diagnostic_begin (diag_mgr,
				    DIAGNOSTIC_LEVEL_WARNING);
  diagnostic_set_location (d, loc_range);

  diagnostic_finish (d, "this is a warning");

On compiling and running the program, we should get output similar to:

test-warning.c:17:11: warning: this is a warning
17 | #include <foo.h>
   |           ^~~~~

Various severities are possible, see diagnostic_level for more information.

In the next section of the tutorial we’ll look at adding fix-it hints to diagnostics.