[clang] Implement lifetime analysis for lifetime_capture_by(X) (#115921)
[llvm-project.git] / clang / test / Parser / editor-placeholder-recovery.cpp
blob62f5529906f9316649cb17cecb2f1bf4095805b1
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
4 struct Struct {
5 public:
6 void method(Struct &x);
7 };
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
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
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
35 using <#qualifier#>::<#name#>;
36 #ifndef SUPPRESS
37 // expected-error@-2 2 {{editor placeholder in source file}}
38 #endif
40 void avoidPlaceholderErrors(Struct &obj) {
41 static_cast< <#type#> >(<#expression#>);
42 while (<#condition#>) {
43 <#statements#>
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;
62 default:
63 break;
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
73 void handleTrigraph() {
74 <??=placeholder#> // expected-error {{expected expression}} expected-error {{expected expression}} expected-warning {{trigraph converted to '#' character}}