1// RUN: not %clang_cc1 -fsyntax-only -verify %s 2>&1 | FileCheck %s 2 3// Test the -verify flag. Each of the "x = y;" lines will produce a 4// "use of undeclared identifier 'y'" error message. 5 6void test() { 7 int x; 8 // Proper matches here. 9 x = y; // expected-error{{use of undeclared identifier 'y'}} 10 x = y; // expected-error{{use of undeclared identifier}} 11 x = y; // expected-error{{undeclared identifier 'y'}} 12 x = y; // expected-error{{use of}} 13 x = y; // expected-error{{undeclared identifier}} 14 x = y; // expected-error{{'y'}} 15 16 // Bad matches here. 17 x = y; // expected-error{{use of undeclared identifier 'y' is fine}} 18 x = y; // expected-error{{abuse of undeclared identifier 'y'}} 19 x = y; // expected-error{{good use of undeclared identifier 'y' in code}} 20 x = y; // expected-error{{ use of undeclared identifier 'y' }} 21 x = y; // expected-error{{use of undeclared identifier 'y' is disallowed}} 22 x = y; // expected-error{{please don't use of undeclared identifier 'y'}} 23 x = y; // expected-error{{use of undeclared identifier 'y'; please declare y before use}} 24 x = y; // expected-error{{use of use of undeclared identifier 'y'}} 25 x = y; // expected-error{{use of undeclared identifier 'y' identifier 'y'}} 26} 27 28//CHECK: error: 'error' diagnostics expected but not seen: 29//CHECK: Line 17: use of undeclared identifier 'y' is fine 30//CHECK: Line 18: abuse of undeclared identifier 'y' 31//CHECK: Line 19: good use of undeclared identifier 'y' in code 32//CHECK: Line 20: use of undeclared identifier 'y' 33//CHECK: Line 21: use of undeclared identifier 'y' is disallowed 34//CHECK: Line 22: please don't use of undeclared identifier 'y' 35//CHECK: Line 23: use of undeclared identifier 'y'; please declare y before use 36//CHECK: Line 24: use of use of undeclared identifier 'y' 37//CHECK: Line 25: use of undeclared identifier 'y' identifier 'y' 38//CHECK: error: 'error' diagnostics seen but not expected: 39//CHECK: Line 17: use of undeclared identifier 'y' 40//CHECK: Line 18: use of undeclared identifier 'y' 41//CHECK: Line 19: use of undeclared identifier 'y' 42//CHECK: Line 20: use of undeclared identifier 'y' 43//CHECK: Line 21: use of undeclared identifier 'y' 44//CHECK: Line 22: use of undeclared identifier 'y' 45//CHECK: Line 23: use of undeclared identifier 'y' 46//CHECK: Line 24: use of undeclared identifier 'y' 47//CHECK: Line 25: use of undeclared identifier 'y' 48//CHECK: 18 errors generated. 49