brintos

brintos / llvm-project-archived public Read only

0
0
Text · 12.5 KiB · 3c3d0c5 Raw
247 lines · cpp
1struct X { int x; };2void z(int);3typedef struct t TYPEDEF;4 5void foo() {6  int y = 17;7  // RUN: %clang_cc1 -fsyntax-only -fcxx-exceptions -code-completion-patterns -code-completion-at=%s:6:14 -std=gnu++98 %s -o - | FileCheck -check-prefix=CHECK-CC1 %s8  // CHECK-CC1: COMPLETION: bool9  // CHECK-CC1-NEXT: COMPLETION: char10  // CHECK-CC1-NEXT: COMPLETION: class11  // CHECK-CC1-NEXT: COMPLETION: const12  // CHECK-CC1-NEXT: COMPLETION: Pattern : const_cast<<#type#>>(<#expression#>)13  // CHECK-CC1: COMPLETION: Pattern : [#void#]delete <#expression#>14  // CHECK-CC1-NEXT: COMPLETION: Pattern : [#void#]delete [] <#expression#>15  // CHECK-CC1-NEXT: COMPLETION: Pattern : do {16  // CHECK-CC1-NEXT: <#statements#>17  // CHECK-CC1-NEXT: }18  // CHECK-CC1: COMPLETION: double19  // CHECK-CC1-NEXT: COMPLETION: Pattern : dynamic_cast<<#type#>>(<#expression#>)20  // CHECK-CC1-NEXT: COMPLETION: enum21  // CHECK-CC1-NEXT: COMPLETION: extern22  // CHECK-CC1-NEXT: COMPLETION: Pattern : [#bool#]false23  // CHECK-CC1-NEXT: COMPLETION: float24  // CHECK-CC1-NEXT: COMPLETION: foo : [#void#]foo()25  // CHECK-CC1-NEXT: COMPLETION: Pattern : for (<#init-statement#>; <#condition#>; <#inc-expression#>) {26  // CHECK-CC1-NEXT: <#statements#>{{$}}27  // CHECK-CC1-NEXT: }28  // CHECK-CC1: COMPLETION: Pattern : goto <#label#>;29  // CHECK-CC1-NEXT: COMPLETION: Pattern : if (<#condition#>) {30  // CHECK-CC1-NEXT: <#statements#>{{$}}31  // CHECK-CC1-NEXT: }32  // CHECK-CC1: COMPLETION: int33  // CHECK-CC1-NEXT: COMPLETION: long34  // CHECK-CC1-NEXT: COMPLETION: Pattern : new <#type#>(<#expressions#>)35  // CHECK-CC1-NEXT: COMPLETION: Pattern : new <#type#>[<#size#>](<#expressions#>)36  // CHECK-CC1-NEXT: COMPLETION: operator37  // CHECK-CC1-NEXT: COMPLETION: Pattern : reinterpret_cast<<#type#>>(<#expression#>)38  // CHECK-CC1-NEXT: COMPLETION: Pattern : return;39  // CHECK-CC1-NEXT: COMPLETION: short40  // CHECK-CC1-NEXT: COMPLETION: signed41  // CHECK-CC1-NEXT: COMPLETION: Pattern : [#size_t#]sizeof(<#expression-or-type#>)42  // CHECK-CC1-NEXT: COMPLETION: static43  // CHECK-CC1-NEXT: COMPLETION: Pattern : static_cast<<#type#>>(<#expression#>)44  // CHECK-CC1-NEXT: COMPLETION: struct45  // CHECK-CC1-NEXT: COMPLETION: Pattern : switch (<#condition#>) {46  // CHECK-CC1: COMPLETION: t : t47  // CHECK-CC1-NEXT: COMPLETION: Pattern : [#void#]throw <#expression#>48  // CHECK-CC1-NEXT: COMPLETION: Pattern : [#bool#]true49  // CHECK-CC1-NEXT: COMPLETION: Pattern : try {50  // CHECK-CC1-NEXT: <#statements#>51  // CHECK-CC1-NEXT: } catch (<#declaration#>) {52  // CHECK-CC1-NEXT: <#statements#>53  // CHECK-CC1-NEXT: }54  // CHECK-CC1: COMPLETION: TYPEDEF : TYPEDEF55  // CHECK-CC1-NEXT: COMPLETION: Pattern : typedef <#type#> <#name#>;56  // CHECK-CC1-NEXT: COMPLETION: Pattern : [#std::type_info#]typeid(<#expression-or-type#>)57  // CHECK-CC1-NEXT: COMPLETION: Pattern : typename <#name#>58  // CHECK-CC1-NEXT: COMPLETION: Pattern : typeof <#expression#>59  // CHECK-CC1-NEXT: COMPLETION: Pattern : typeof(<#type#>)60  // CHECK-CC1-NEXT: COMPLETION: union61  // CHECK-CC1-NEXT: COMPLETION: unsigned62  // CHECK-CC1-NOT: COMPLETION: Pattern : using <#name#> = <#type#>;63  // CHECK-CC1-NEXT: COMPLETION: Pattern : using namespace <#identifier#>;64  // CHECK-CC1-NEXT: COMPLETION: void65  // CHECK-CC1-NEXT: COMPLETION: volatile66  // CHECK-CC1-NEXT: COMPLETION: wchar_t67  // CHECK-CC1-NEXT: COMPLETION: Pattern : while (<#condition#>) {68  // CHECK-CC1-NEXT: <#statements#>69  // CHECK-CC1-NEXT: }70  // CHECK-CC1: COMPLETION: X : X71  // CHECK-CC1-NEXT: COMPLETION: y : [#int#]y72  // CHECK-CC1-NEXT: COMPLETION: z : [#void#]z(<#int#>)73 74  // RUN: %clang_cc1 -fsyntax-only  -code-completion-patterns -code-completion-at=%s:4:1 -std=gnu++98 %s -o - | FileCheck -check-prefix=CHECK-CC2 %s75  // CHECK-CC2: COMPLETION: Pattern : asm(<#string-literal#>)76  // CHECK-CC2-NEXT: COMPLETION: bool77  // CHECK-CC2-NEXT: COMPLETION: char78  // CHECK-CC2-NEXT: COMPLETION: class79  // CHECK-CC2-NEXT: COMPLETION: const80  // CHECK-CC2-NEXT: COMPLETION: double81  // CHECK-CC2-NEXT: COMPLETION: enum82  // CHECK-CC2-NEXT: COMPLETION: extern83  // CHECK-CC2-NEXT: COMPLETION: float84  // CHECK-CC2-NEXT: COMPLETION: inline85  // CHECK-CC2-NEXT: COMPLETION: int86  // CHECK-CC2-NEXT: COMPLETION: long87  // CHECK-CC2-NEXT: COMPLETION: Pattern : namespace <#identifier#> {88  // CHECK-CC2-NEXT: <#declarations#>89  // CHECK-CC2-NEXT: }90  // CHECK-CC2: COMPLETION: Pattern : namespace <#name#> = <#namespace#>;91  // CHECK-CC2-NEXT: COMPLETION: operator92  // CHECK-CC2-NEXT: COMPLETION: short93  // CHECK-CC2-NEXT: COMPLETION: signed94  // CHECK-CC2-NEXT: COMPLETION: static95  // CHECK-CC2-NEXT: COMPLETION: struct96  // CHECK-CC2-NEXT: COMPLETION: t : t97  // CHECK-CC2-NEXT: COMPLETION: Pattern : template <#declaration#>98  // CHECK-CC2-NEXT: COMPLETION: Pattern : template<<#parameters#>>99  // CHECK-CC2-NEXT: COMPLETION: TYPEDEF : TYPEDEF100  // CHECK-CC2-NEXT: COMPLETION: Pattern : typedef <#type#> <#name#>;101  // CHECK-CC2-NEXT: COMPLETION: Pattern : typename <#name#>102  // CHECK-CC2-NEXT: COMPLETION: Pattern : typeof <#expression#>103  // CHECK-CC2-NEXT: COMPLETION: Pattern : typeof(<#type#>)104  // CHECK-CC2-NEXT: COMPLETION: union105  // CHECK-CC2-NEXT: COMPLETION: unsigned106  // CHECK-CC2-NEXT: COMPLETION: Pattern : using <#qualifier#>::<#name#>;107  // CHECK-CC2-NOT: COMPLETION: Pattern : using <#name#> = <#type#>;108  // CHECK-CC2-NEXT: COMPLETION: Pattern : using namespace <#identifier#>;109  // CHECK-CC2-NEXT: COMPLETION: void110  // CHECK-CC2-NEXT: COMPLETION: volatile111  // CHECK-CC2-NEXT: COMPLETION: wchar_t112  // CHECK-CC2-NEXT: COMPLETION: X : X113 114  // RUN: %clang_cc1 -fsyntax-only -code-completion-patterns -code-completion-at=%s:1:19 -std=gnu++98 %s -o - | FileCheck -check-prefix=CHECK-CC3 %s115  // CHECK-CC3: COMPLETION: bool116  // CHECK-CC3-NEXT: COMPLETION: char117  // CHECK-CC3-NEXT: COMPLETION: class118  // CHECK-CC3-NEXT: COMPLETION: const119  // CHECK-CC3-NEXT: COMPLETION: double120  // CHECK-CC3-NEXT: COMPLETION: enum121  // CHECK-CC3-NEXT: COMPLETION: explicit122  // CHECK-CC3-NEXT: COMPLETION: extern123  // CHECK-CC3-NEXT: COMPLETION: float124  // CHECK-CC3-NEXT: COMPLETION: friend125  // CHECK-CC3-NEXT: COMPLETION: inline126  // CHECK-CC3-NEXT: COMPLETION: int127  // CHECK-CC3-NEXT: COMPLETION: long128  // CHECK-CC3-NEXT: COMPLETION: mutable129  // CHECK-CC3-NEXT: COMPLETION: operator130  // CHECK-CC3-NEXT: COMPLETION: Pattern : private: 131  // CHECK-CC3-NEXT: COMPLETION: Pattern : protected: 132  // CHECK-CC3-NEXT: COMPLETION: Pattern : public: 133  // CHECK-CC3-NEXT: COMPLETION: short134  // CHECK-CC3-NEXT: COMPLETION: signed135  // CHECK-CC3-NEXT: COMPLETION: static136  // CHECK-CC3-NEXT: COMPLETION: struct137  // CHECK-CC3-NEXT: COMPLETION: Pattern : template<<#parameters#>>138  // CHECK-CC3-NEXT: COMPLETION: Pattern : typedef <#type#> <#name#>;139  // CHECK-CC3-NEXT: COMPLETION: Pattern : typename <#name#>140  // CHECK-CC3-NEXT: COMPLETION: Pattern : typeof <#expression#>141  // CHECK-CC3-NEXT: COMPLETION: Pattern : typeof(<#type#>)142  // CHECK-CC3-NEXT: COMPLETION: union143  // CHECK-CC3-NEXT: COMPLETION: unsigned144  // CHECK-CC3-NEXT: COMPLETION: Pattern : using <#qualifier#>::<#name#>;145  // CHECK-CC3-NOT: COMPLETION: Pattern : using <#name#> = <#type#>;146  // CHECK-CC3-NEXT: COMPLETION: virtual147  // CHECK-CC3-NEXT: COMPLETION: void148  // CHECK-CC3-NEXT: COMPLETION: volatile149  // CHECK-CC3-NEXT: COMPLETION: wchar_t150  // CHECK-CC3-NEXT: COMPLETION: X : X151 152  // RUN: %clang_cc1 -fsyntax-only -fcxx-exceptions -code-completion-patterns -code-completion-at=%s:6:11 -std=gnu++98 %s -o - | FileCheck -check-prefix=CHECK-CC4 %s153  // CHECK-CC4: COMPLETION: bool154  // CHECK-CC4-NEXT: COMPLETION: char155  // CHECK-CC4-NEXT: COMPLETION: class156  // CHECK-CC4-NEXT: COMPLETION: const157  // CHECK-CC4-NEXT: COMPLETION: Pattern : const_cast<<#type#>>(<#expression#>)158  // CHECK-CC4-NEXT: COMPLETION: Pattern : [#void#]delete <#expression#>159  // CHECK-CC4-NEXT: COMPLETION: Pattern : [#void#]delete [] <#expression#>160  // CHECK-CC4-NEXT: COMPLETION: double161  // CHECK-CC4-NEXT: COMPLETION: Pattern : dynamic_cast<<#type#>>(<#expression#>)162  // CHECK-CC4-NEXT: COMPLETION: enum163  // CHECK-CC4-NEXT: COMPLETION: Pattern : [#bool#]false164  // CHECK-CC4-NEXT: COMPLETION: float165  // CHECK-CC4-NEXT: COMPLETION: foo : [#void#]foo()166  // CHECK-CC4-NEXT: COMPLETION: int167  // CHECK-CC4-NEXT: COMPLETION: long168  // CHECK-CC4-NEXT: COMPLETION: Pattern : new <#type#>(<#expressions#>)169  // CHECK-CC4-NEXT: COMPLETION: Pattern : new <#type#>[<#size#>](<#expressions#>)170  // CHECK-CC4-NEXT: COMPLETION: operator171  // CHECK-CC4-NEXT: COMPLETION: Pattern : reinterpret_cast<<#type#>>(<#expression#>)172  // CHECK-CC4-NEXT: COMPLETION: short173  // CHECK-CC4-NEXT: COMPLETION: signed174  // CHECK-CC4-NEXT: COMPLETION: Pattern : [#size_t#]sizeof(<#expression-or-type#>)175  // CHECK-CC4-NEXT: COMPLETION: Pattern : static_cast<<#type#>>(<#expression#>)176  // CHECK-CC4-NEXT: COMPLETION: struct177  // CHECK-CC4-NEXT: COMPLETION: t : t178  // CHECK-CC4-NEXT: COMPLETION: Pattern : [#void#]throw <#expression#>179  // CHECK-CC4-NEXT: COMPLETION: Pattern : [#bool#]true180  // CHECK-CC4-NEXT: COMPLETION: TYPEDEF : TYPEDEF181  // CHECK-CC4-NEXT: COMPLETION: Pattern : [#std::type_info#]typeid(<#expression-or-type#>)182  // CHECK-CC4-NEXT: COMPLETION: Pattern : typename <#name#>183  // CHECK-CC4-NEXT: COMPLETION: Pattern : typeof <#expression#>184  // CHECK-CC4-NEXT: COMPLETION: Pattern : typeof(<#type#>)185  // CHECK-CC4-NEXT: COMPLETION: union186  // CHECK-CC4-NEXT: COMPLETION: unsigned187  // CHECK-CC4-NEXT: COMPLETION: void188  // CHECK-CC4-NEXT: COMPLETION: volatile189  // CHECK-CC4-NEXT: COMPLETION: wchar_t190  // CHECK-CC4-NEXT: COMPLETION: X : X191  // CHECK-CC4-NEXT: COMPLETION: z : [#void#]z(<#int#>)192 193  // RUN: %clang_cc1 -fsyntax-only -fno-rtti -code-completion-patterns -code-completion-at=%s:6:14 -std=gnu++98 %s -o - | FileCheck -check-prefix=CHECK-NO-RTTI %s194  // CHECK-NO-RTTI: COMPLETION: bool195  // CHECK-NO-RTTI-NEXT: COMPLETION: char196  // CHECK-NO-RTTI-NEXT: COMPLETION: class197  // CHECK-NO-RTTI-NEXT: COMPLETION: const198  // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : const_cast<<#type#>>(<#expression#>)199  // CHECK-NO-RTTI: COMPLETION: Pattern : [#void#]delete <#expression#>200  // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : [#void#]delete [] <#expression#>201  // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : do {202  // CHECK-NO-RTTI: COMPLETION: double203  // CHECK-NO-RTTI-NOT: dynamic_cast204  // CHECK-NO-RTTI: COMPLETION: enum205  // CHECK-NO-RTTI-NEXT: COMPLETION: extern206  // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : [#bool#]false207  // CHECK-NO-RTTI-NEXT: COMPLETION: float208  // CHECK-NO-RTTI-NEXT: COMPLETION: foo : [#void#]foo()209  // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : for (<#init-statement#>; <#condition#>; <#inc-expression#>) {210  // CHECK-NO-RTTI: COMPLETION: Pattern : goto <#label#>;211  // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : if (<#condition#>) {212  // CHECK-NO-RTTI: COMPLETION: int213  // CHECK-NO-RTTI-NEXT: COMPLETION: long214  // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : new <#type#>(<#expressions#>)215  // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : new <#type#>[<#size#>](<#expressions#>)216  // CHECK-NO-RTTI-NEXT: COMPLETION: operator217  // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : reinterpret_cast<<#type#>>(<#expression#>)218  // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : return;219  // CHECK-NO-RTTI-NEXT: COMPLETION: short220  // CHECK-NO-RTTI-NEXT: COMPLETION: signed221  // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : [#size_t#]sizeof(<#expression-or-type#>)222  // CHECK-NO-RTTI-NEXT: COMPLETION: static223  // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : static_cast<<#type#>>(<#expression#>)224  // CHECK-NO-RTTI-NEXT: COMPLETION: struct225  // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : switch (<#condition#>) {226  // CHECK-NO-RTTI: COMPLETION: t : t227  // CHECK-NO-RTTI-NOT: throw228  // CHECK-NO-RTTI: COMPLETION: Pattern : [#bool#]true229  // CHECK-NO-RTTI-NOT: try230  // CHECK-NO-RTTI: COMPLETION: TYPEDEF : TYPEDEF231  // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : typedef <#type#> <#name#>;232  // CHECK-NO-RTTI-NOT: typeid233  // CHECK-NO-RTTI: COMPLETION: Pattern : typename <#name#>234  // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : typeof <#expression#>235  // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : typeof(<#type#>)236  // CHECK-NO-RTTI-NEXT: COMPLETION: union237  // CHECK-NO-RTTI-NEXT: COMPLETION: unsigned238  // CHECK-NO-RTTI-NOT: COMPLETION: Pattern : using <#name#> = <#type#>;239  // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : using namespace <#identifier#>;240  // CHECK-NO-RTTI-NEXT: COMPLETION: void241  // CHECK-NO-RTTI-NEXT: COMPLETION: volatile242  // CHECK-NO-RTTI-NEXT: COMPLETION: wchar_t243  // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : while (<#condition#>) {244  // CHECK-NO-RTTI: COMPLETION: X : X245  // CHECK-NO-RTTI-NEXT: COMPLETION: y : [#int#]y246  // CHECK-NO-RTTI-NEXT: COMPLETION: z : [#void#]z(<#int#>)247