| // RUN: %clang_cc1 -fsyntax-only -std=c++11 -verify %s |
| // RUN: %clang_cc1 -fsyntax-only -std=c++11 -fallow-editor-placeholders -DSUPPRESS -verify %s |
| |
| struct Struct { |
| public: |
| void method(Struct &x); |
| }; |
| |
| struct <#struct name#> { |
| int <#field-name#>; |
| #ifndef SUPPRESS |
| // expected-error@-3 {{editor placeholder in source file}} |
| // expected-error@-3 {{editor placeholder in source file}} |
| #endif |
| }; |
| |
| typename <#typename#>::<#name#>; |
| decltype(<#expression#>) foobar; |
| typedef <#type#> <#name#>; |
| #ifndef SUPPRESS |
| // expected-error@-4 2 {{editor placeholder in source file}} |
| // expected-error@-4 {{editor placeholder in source file}} |
| // expected-error@-4 2 {{editor placeholder in source file}} |
| #endif |
| |
| namespace <#identifier#> { |
| <#declarations#> |
| #ifndef SUPPRESS |
| // expected-error@-3 {{editor placeholder in source file}} |
| // expected-error@-3 {{editor placeholder in source file}} |
| #endif |
| |
| } |
| |
| using <#qualifier#>::<#name#>; |
| #ifndef SUPPRESS |
| // expected-error@-2 2 {{editor placeholder in source file}} |
| #endif |
| |
| void avoidPlaceholderErrors(Struct &obj) { |
| static_cast< <#type#> >(<#expression#>); |
| while (<#condition#>) { |
| <#statements#> |
| } |
| obj.method(<#Struct &x#>); |
| #ifndef SUPPRESS |
| // expected-error@-6 2 {{editor placeholder in source file}} |
| // expected-error@-6 {{editor placeholder in source file}} |
| // expected-error@-6 {{editor placeholder in source file}} |
| // expected-error@-5 {{editor placeholder in source file}} |
| #endif |
| switch (<#expression#>) { |
| case <#constant#>: |
| <#statements#> |
| #ifndef SUPPRESS |
| // expected-error@-4 {{editor placeholder in source file}} |
| // expected-error@-4 {{editor placeholder in source file}} |
| // expected-error@-4 {{editor placeholder in source file}} |
| #endif |
| break; |
| |
| default: |
| break; |
| } |
| } |
| |
| void Struct::method(<#Struct &x#>, noSupressionHere) { // expected-error {{unknown type name 'noSupressionHere'}} expected-error {{C++ requires a type specifier for all declarations}} |
| #ifndef SUPPRESS |
| // expected-error@-2 {{editor placeholder in source file}} |
| #endif |
| } |
| |
| void handleTrigraph() { |
| <??=placeholder#> // expected-error {{expected expression}} expected-error {{expected expression}} expected-warning {{trigraph converted to '#' character}} |
| } |