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)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 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()73void handleTrigraph() { 74 <??=placeholder#> // expected-error {{expected expression}} expected-error {{expected expression}} expected-warning {{trigraph converted to '#' character}} 75 } 76