blob: 62f5529906f9316649cb17cecb2f1bf4095805b1 [file] [log] [blame]
Alex Lorenz1be800c52017-04-19 08:58:56 +00001// RUN: %clang_cc1 -fsyntax-only -std=c++11 -verify %s
2// RUN: %clang_cc1 -fsyntax-only -std=c++11 -fallow-editor-placeholders -DSUPPRESS -verify %s
3
4struct Struct {
5public:
6 void method(Struct &x);
7};
8
9struct <#struct name#> {
10 int <#field-name#>;
11#ifndef SUPPRESS
12 // expected-error@-3 {{editor placeholder in source file}}
13 // expected-error@-3 {{editor placeholder in source file}}
14#endif
15};
16
17typename <#typename#>::<#name#>;
18decltype(<#expression#>) foobar;
19typedef <#type#> <#name#>;
20#ifndef SUPPRESS
21 // expected-error@-4 2 {{editor placeholder in source file}}
22 // expected-error@-4 {{editor placeholder in source file}}
23 // expected-error@-4 2 {{editor placeholder in source file}}
24#endif
25
26namespace <#identifier#> {
27 <#declarations#>
28#ifndef SUPPRESS
29 // expected-error@-3 {{editor placeholder in source file}}
30 // expected-error@-3 {{editor placeholder in source file}}
31#endif
32
33}
34
35using <#qualifier#>::<#name#>;
36#ifndef SUPPRESS
37 // expected-error@-2 2 {{editor placeholder in source file}}
38#endif
39
40void avoidPlaceholderErrors(Struct &obj) {
41 static_cast< <#type#> >(<#expression#>);
42 while (<#condition#>) {
43 <#statements#>
44 }
45 obj.method(<#Struct &x#>);
46#ifndef SUPPRESS
47 // expected-error@-6 2 {{editor placeholder in source file}}
48 // expected-error@-6 {{editor placeholder in source file}}
49 // expected-error@-6 {{editor placeholder in source file}}
50 // expected-error@-5 {{editor placeholder in source file}}
51#endif
52 switch (<#expression#>) {
53 case <#constant#>:
54 <#statements#>
55#ifndef SUPPRESS
56 // expected-error@-4 {{editor placeholder in source file}}
57 // expected-error@-4 {{editor placeholder in source file}}
58 // expected-error@-4 {{editor placeholder in source file}}
59#endif
60 break;
61
62 default:
63 break;
64 }
65}
66
Nicolas Lesseree057172019-05-05 12:15:17 +000067void Struct::method(<#Struct &x#>, noSupressionHere) { // expected-error {{unknown type name 'noSupressionHere'}}
Alex Lorenz1be800c52017-04-19 08:58:56 +000068#ifndef SUPPRESS
69 // expected-error@-2 {{editor placeholder in source file}}
70#endif
71}
Alex Lorenzc1e32fc2017-10-11 00:41:20 +000072
73void handleTrigraph() {
74 <??=placeholder#> // expected-error {{expected expression}} expected-error {{expected expression}} expected-warning {{trigraph converted to '#' character}}
75}