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
test()6 void 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