Significant change to -verify feature


A fairly significant change has just been committed to VerifyDiagnosticConsumer which handles the functionality of the -verify switch in clang. This *may* affect people writing test-cases using the -verify switch in future, so here is a quick summary of the change that has taken place for those who have not been part of the discussion regarding this on cfe-commits.

VerifyDiagnosticConsumer now requires at least one "expected-*" directive to be encountered while compiling a source file. If none are found, an error will be generated. In order to flag test-cases that are not expected to generate any diagnostics, a new directive "expected-no-diagnostics" has been created. This can be used by simply including the following line somewhere in the test-case:

  // expected-no-diagnostics

This directive cannot be used in conjunction with any other "expected-*" directive, otherwise an error will be generated. The original logic regarding the handling of expected and unexpected diagnostics remains as before.

Documentation of the -verify feature can be found at and (when next refreshed!).

Thanks for your time!


Hi Andy,
   Sounds great!