• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // 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 
4 struct Struct {
5 public:
6     void method(Struct &x);
7 };
8 
9 struct <#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 
17 typename <#typename#>::<#name#>;
18 decltype(<#expression#>) foobar;
19 typedef <#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 
26 namespace <#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 
35 using <#qualifier#>::<#name#>;
36 #ifndef SUPPRESS
37   // expected-error@-2 2 {{editor placeholder in source file}}
38 #endif
39 
avoidPlaceholderErrors(Struct & obj)40 void 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 
67 void Struct::method(<#Struct &x#>, noSupressionHere) { // expected-error {{unknown type name 'noSupressionHere'}}
68 #ifndef SUPPRESS
69   // expected-error@-2 {{editor placeholder in source file}}
70 #endif
71 }
72 
handleTrigraph()73 void handleTrigraph() {
74   <??=placeholder#> // expected-error {{expected expression}} expected-error {{expected expression}} expected-warning {{trigraph converted to '#' character}}
75 }
76