// Test the diagnostic messages of -verify with multiple prefixes. // - Expected but not seen errors should contain the prefix of the directive // - Seen but not expected errors should not choose an arbitrary prefix // - "expected directive cannot follow '-no-diagnostics'" should report an actual // expected-no-diagnostics prefix present in the source. // RUN: not %clang_cc1 -verify=foo,bar %s 2>&1 | FileCheck %s --check-prefix=CHECK1 // RUN: not %clang_cc1 -verify=bar,foo %s 2>&1 | FileCheck %s --check-prefix=CHECK1 undefined_type x; // #1 // foo-error{{there is no error here}} // bar-error{{error not seen}} // bar-note{{declared here}} // bar-error{{another error not seen}} // bar-error-re{{regex error{{}} not present}} // CHECK1: error: diagnostics with 'error' severity expected but not seen: // CHECK1: Line 12 'foo-error': there is no error here // CHECK1: Line 13 'bar-error': error not seen // CHECK1: Line 15 'bar-error': another error not seen // CHECK1: Line 16 'bar-error-re': regex error{{{{[}][}]}} not present // CHECK1: error: diagnostics with 'error' severity seen but not expected: // CHECK1: Line 10: unknown type name 'undefined_type' // CHECK1: error: diagnostics with 'note' severity expected but not seen: // CHECK1: Line 14 'bar-note': declared here // CHECK1: 6 errors generated. // RUN: not %clang_cc1 -verify=baz,qux,quux %s 2>&1 | FileCheck %s --check-prefix=CHECK2 // qux-no-diagnostics // baz-error@#1{{unknown type name 'undefined_type'}} // quux-no-diagnostics // qux-error-re@#1{{unknown type name 'undefined_type'}} // CHECK2: error: diagnostics with 'error' severity seen but not expected: // CHECK2: Line 10: unknown type name 'undefined_type' // CHECK2: Line 32: 'baz-error' directive cannot follow 'qux-no-diagnostics' directive // CHECK2: Line 34: 'qux-error-re' directive cannot follow 'qux-no-diagnostics' directive // RUN: not %clang_cc1 -verify=spam,eggs %s 2>&1 | FileCheck %s --check-prefix=CHECK3 // eggs-error@#1{{unknown type name 'undefined_type'}} // spam-no-diagnostics // CHECK3: error: diagnostics with 'error' severity seen but not expected: // CHECK3: Line 44: 'spam-no-diagnostics' directive cannot follow other expected directives // CHECK3: 1 error generated.