brintos

brintos / llvm-project-archived public Read only

0
0
Text · 14.3 KiB · 7593d00 Raw
279 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++11 %s -o - | FileCheck -check-prefix=CHECK-CC1 %s8  // CHECK-CC1: COMPLETION: bool9  // CHECK-CC1-NEXT: COMPLETION: char10  // CHECK-CC1-NEXT: COMPLETION: char1611  // CHECK-CC1-NEXT: COMPLETION: char3212  // CHECK-CC1-NEXT: COMPLETION: class13  // CHECK-CC1-NEXT: COMPLETION: const14  // CHECK-CC1-NEXT: COMPLETION: Pattern : const_cast<<#type#>>(<#expression#>)15  // CHECK-CC1: COMPLETION: Pattern : [#void#]delete <#expression#>16  // CHECK-CC1-NEXT: COMPLETION: Pattern : [#void#]delete [] <#expression#>17  // CHECK-CC1-NEXT: COMPLETION: Pattern : do {18  // CHECK-CC1-NEXT: <#statements#>19  // CHECK-CC1-NEXT: }20  // CHECK-CC1: COMPLETION: double21  // CHECK-CC1-NEXT: COMPLETION: Pattern : dynamic_cast<<#type#>>(<#expression#>)22  // CHECK-CC1-NEXT: COMPLETION: enum23  // CHECK-CC1-NEXT: COMPLETION: extern24  // CHECK-CC1-NEXT: COMPLETION: Pattern : [#bool#]false25  // CHECK-CC1-NEXT: COMPLETION: float26  // CHECK-CC1-NEXT: COMPLETION: foo : [#void#]foo()27  // CHECK-CC1-NEXT: COMPLETION: Pattern : for (<#init-statement#>; <#condition#>; <#inc-expression#>) {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: Pattern : [#bool#]noexcept(<#expression#>)37  // CHECK-CC1-NEXT: COMPLETION: Pattern : [#std::nullptr_t#]nullptr38  // CHECK-CC1-NEXT: COMPLETION: operator39  // CHECK-CC1-NEXT: COMPLETION: Pattern : reinterpret_cast<<#type#>>(<#expression#>)40  // CHECK-CC1-NEXT: COMPLETION: Pattern : return;41  // CHECK-CC1-NEXT: COMPLETION: short42  // CHECK-CC1-NEXT: COMPLETION: signed43  // CHECK-CC1-NEXT: COMPLETION: Pattern : [#size_t#]sizeof(<#expression-or-type#>)44  // CHECK-CC1-NEXT: COMPLETION: Pattern : [#size_t#]sizeof...(<#parameter-pack#>)45  // CHECK-CC1-NEXT: COMPLETION: static46  // CHECK-CC1-NEXT: COMPLETION: Pattern : static_assert(<#expression#>, <#message#>);47  // CHECK-CC1-NEXT: COMPLETION: Pattern : static_cast<<#type#>>(<#expression#>)48  // CHECK-CC1-NEXT: COMPLETION: struct49  // CHECK-CC1-NEXT: COMPLETION: Pattern : switch (<#condition#>) {50  // CHECK-CC1: COMPLETION: t : t51  // CHECK-CC1-NEXT: COMPLETION: thread_local52  // CHECK-CC1-NEXT: COMPLETION: Pattern : [#void#]throw <#expression#>53  // CHECK-CC1-NEXT: COMPLETION: Pattern : [#bool#]true54  // CHECK-CC1-NEXT: COMPLETION: Pattern : try {55  // CHECK-CC1-NEXT: <#statements#>56  // CHECK-CC1-NEXT: }57  // CHECK-CC1: COMPLETION: TYPEDEF : TYPEDEF58  // CHECK-CC1-NEXT: COMPLETION: Pattern : typedef <#type#> <#name#>;59  // CHECK-CC1-NEXT: COMPLETION: Pattern : [#std::type_info#]typeid(<#expression-or-type#>)60  // CHECK-CC1-NEXT: COMPLETION: Pattern : typename <#name#>61  // CHECK-CC1-NEXT: COMPLETION: Pattern : typeof <#expression#>62  // CHECK-CC1-NEXT: COMPLETION: Pattern : typeof(<#type#>)63  // CHECK-CC1-NEXT: COMPLETION: union64  // CHECK-CC1-NEXT: COMPLETION: unsigned65  // CHECK-CC1-NEXT: COMPLETION: Pattern : using <#name#> = <#type#>;66  // CHECK-CC1-NEXT: COMPLETION: Pattern : using namespace <#identifier#>;67  // CHECK-CC1-NEXT: COMPLETION: void68  // CHECK-CC1-NEXT: COMPLETION: volatile69  // CHECK-CC1-NEXT: COMPLETION: wchar_t70  // CHECK-CC1-NEXT: COMPLETION: Pattern : while (<#condition#>) {71  // CHECK-CC1-NEXT: <#statements#>72  // CHECK-CC1-NEXT: }73  // CHECK-CC1: COMPLETION: X : X74  // CHECK-CC1-NEXT: COMPLETION: y : [#int#]y75  // CHECK-CC1-NEXT: COMPLETION: z : [#void#]z(<#int#>)76 77  // RUN: %clang_cc1 -fsyntax-only  -code-completion-patterns -code-completion-at=%s:4:1 -std=gnu++11 %s -o - | FileCheck -check-prefix=CHECK-CC2 %s78  // CHECK-CC2: COMPLETION: Pattern : asm(<#string-literal#>)79  // CHECK-CC2: COMPLETION: auto80  // CHECK-CC2-NEXT: COMPLETION: bool81  // CHECK-CC2-NEXT: COMPLETION: char82  // CHECK-CC2-NEXT: COMPLETION: char1683  // CHECK-CC2-NEXT: COMPLETION: char3284  // CHECK-CC2-NEXT: COMPLETION: class85  // CHECK-CC2-NEXT: COMPLETION: const86  // CHECK-CC2-NEXT: COMPLETION: constexpr87  // CHECK-CC2-NEXT: COMPLETION: Pattern : decltype(<#expression#>)88  // CHECK-CC2-NEXT: COMPLETION: double89  // CHECK-CC2-NEXT: COMPLETION: enum90  // CHECK-CC2-NEXT: COMPLETION: extern91  // CHECK-CC2-NEXT: COMPLETION: float92  // CHECK-CC2-NEXT: COMPLETION: inline93  // CHECK-CC2-NEXT: COMPLETION: int94  // CHECK-CC2-NEXT: COMPLETION: long95  // CHECK-CC2-NEXT: COMPLETION: Pattern : namespace <#identifier#> {96  // CHECK-CC2-NEXT: <#declarations#>97  // CHECK-CC2-NEXT: }98  // CHECK-CC2: COMPLETION: Pattern : namespace <#name#> = <#namespace#>;99  // CHECK-CC2-NEXT: COMPLETION: operator100  // CHECK-CC2-NEXT: COMPLETION: short101  // CHECK-CC2-NEXT: COMPLETION: signed102  // CHECK-CC2-NEXT: COMPLETION: static103  // CHECK-CC2-NEXT: COMPLETION: Pattern : static_assert(<#expression#>, <#message#>);104  // CHECK-CC2-NEXT: COMPLETION: struct105  // CHECK-CC2-NEXT: COMPLETION: t : t106  // CHECK-CC2-NEXT: COMPLETION: Pattern : template <#declaration#>107  // CHECK-CC2-NEXT: COMPLETION: Pattern : template<<#parameters#>>108  // CHECK-CC2-NEXT: COMPLETION: thread_local109  // CHECK-CC2-NEXT: COMPLETION: TYPEDEF : TYPEDEF110  // CHECK-CC2-NEXT: COMPLETION: Pattern : typedef <#type#> <#name#>;111  // CHECK-CC2-NEXT: COMPLETION: Pattern : typename <#name#>112  // CHECK-CC2-NEXT: COMPLETION: Pattern : typeof <#expression#>113  // CHECK-CC2-NEXT: COMPLETION: Pattern : typeof(<#type#>)114  // CHECK-CC2-NEXT: COMPLETION: union115  // CHECK-CC2-NEXT: COMPLETION: unsigned116  // CHECK-CC2-NEXT: COMPLETION: Pattern : using <#qualifier#>::<#name#>;117  // CHECK-CC2-NEXT: COMPLETION: Pattern : using <#name#> = <#type#>;118  // CHECK-CC2-NEXT: COMPLETION: Pattern : using namespace <#identifier#>;119  // CHECK-CC2-NEXT: COMPLETION: void120  // CHECK-CC2-NEXT: COMPLETION: volatile121  // CHECK-CC2-NEXT: COMPLETION: wchar_t122  // CHECK-CC2-NEXT: COMPLETION: X : X123 124  // RUN: %clang_cc1 -fsyntax-only -code-completion-patterns -code-completion-at=%s:1:19 -std=gnu++11 %s -o - | FileCheck -check-prefix=CHECK-CC3 %s125  // CHECK-CC3: COMPLETION: bool126  // CHECK-CC3-NEXT: COMPLETION: char127  // CHECK-CC3-NEXT: COMPLETION: char16_t128  // CHECK-CC3-NEXT: COMPLETION: char32_t129  // CHECK-CC3-NEXT: COMPLETION: class130  // CHECK-CC3-NEXT: COMPLETION: const131  // CHECK-CC3-NEXT: COMPLETION: constexpr132  // CHECK-CC3-NEXT: COMPLETION: Pattern : decltype(<#expression#>)133  // CHECK-CC3-NEXT: COMPLETION: double134  // CHECK-CC3-NEXT: COMPLETION: enum135  // CHECK-CC3-NEXT: COMPLETION: explicit136  // CHECK-CC3-NEXT: COMPLETION: extern137  // CHECK-CC3-NEXT: COMPLETION: float138  // CHECK-CC3-NEXT: COMPLETION: friend139  // CHECK-CC3-NEXT: COMPLETION: inline140  // CHECK-CC3-NEXT: COMPLETION: int141  // CHECK-CC3-NEXT: COMPLETION: long142  // CHECK-CC3-NEXT: COMPLETION: mutable143  // CHECK-CC3-NEXT: COMPLETION: operator144  // CHECK-CC3-NEXT: COMPLETION: Pattern : private: 145  // CHECK-CC3-NEXT: COMPLETION: Pattern : protected: 146  // CHECK-CC3-NEXT: COMPLETION: Pattern : public: 147  // CHECK-CC3-NEXT: COMPLETION: short148  // CHECK-CC3-NEXT: COMPLETION: signed149  // CHECK-CC3-NEXT: COMPLETION: static150  // CHECK-CC3-NEXT: COMPLETION: Pattern : static_assert(<#expression#>, <#message#>);151  // CHECK-CC3-NEXT: COMPLETION: struct152  // CHECK-CC3-NEXT: COMPLETION: Pattern : template<<#parameters#>>153  // CHECK-CC3-NEXT: COMPLETION: thread_local154  // CHECK-CC3-NEXT: COMPLETION: Pattern : typedef <#type#> <#name#>;155  // CHECK-CC3-NEXT: COMPLETION: Pattern : typename <#name#>156  // CHECK-CC3-NEXT: COMPLETION: Pattern : typeof <#expression#>157  // CHECK-CC3-NEXT: COMPLETION: Pattern : typeof(<#type#>)158  // CHECK-CC3-NEXT: COMPLETION: union159  // CHECK-CC3-NEXT: COMPLETION: unsigned160  // CHECK-CC3-NEXT: COMPLETION: Pattern : using <#qualifier#>::<#name#>161  // CHECK-CC3-NEXT: COMPLETION: Pattern : using <#name#> = <#type#>;162  // CHECK-CC3-NEXT: COMPLETION: virtual163  // CHECK-CC3-NEXT: COMPLETION: void164  // CHECK-CC3-NEXT: COMPLETION: volatile165  // CHECK-CC3-NEXT: COMPLETION: wchar_t166  // CHECK-CC3-NEXT: COMPLETION: X : X167 168  // RUN: %clang_cc1 -fsyntax-only -fcxx-exceptions -code-completion-patterns -code-completion-at=%s:6:11 -std=gnu++11 %s -o - | FileCheck -check-prefix=CHECK-CC4 %s169  // CHECK-CC4: COMPLETION: bool170  // CHECK-CC4-NEXT: COMPLETION: char171  // CHECK-CC4-NEXT: COMPLETION: char16_t172  // CHECK-CC4-NEXT: COMPLETION: char32_t173  // CHECK-CC4-NEXT: COMPLETION: class174  // CHECK-CC4-NEXT: COMPLETION: const175  // CHECK-CC4-NEXT: COMPLETION: Pattern : const_cast<<#type#>>(<#expression#>)176  // CHECK-CC4-NEXT: COMPLETION: Pattern : decltype(<#expression#>)177  // CHECK-CC4-NEXT: COMPLETION: Pattern : [#void#]delete <#expression#>178  // CHECK-CC4-NEXT: COMPLETION: Pattern : [#void#]delete [] <#expression#>179  // CHECK-CC4-NEXT: COMPLETION: double180  // CHECK-CC4-NEXT: COMPLETION: Pattern : dynamic_cast<<#type#>>(<#expression#>)181  // CHECK-CC4-NEXT: COMPLETION: enum182  // CHECK-CC4-NEXT: COMPLETION: Pattern : [#bool#]false183  // CHECK-CC4-NEXT: COMPLETION: float184  // CHECK-CC4-NEXT: COMPLETION: foo : [#void#]foo()185  // CHECK-CC4-NEXT: COMPLETION: int186  // CHECK-CC4-NEXT: COMPLETION: long187  // CHECK-CC4-NEXT: COMPLETION: Pattern : new <#type#>(<#expressions#>)188  // CHECK-CC4-NEXT: COMPLETION: Pattern : new <#type#>[<#size#>](<#expressions#>)189  // CHECK-CC4-NEXT: COMPLETION: Pattern : [#bool#]noexcept(<#expression#>)190  // CHECK-CC4-NEXT: COMPLETION: Pattern : [#std::nullptr_t#]nullptr191  // CHECK-CC4-NEXT: COMPLETION: operator192  // CHECK-CC4-NEXT: COMPLETION: Pattern : reinterpret_cast<<#type#>>(<#expression#>)193  // CHECK-CC4-NEXT: COMPLETION: short194  // CHECK-CC4-NEXT: COMPLETION: signed195  // CHECK-CC4-NEXT: COMPLETION: Pattern : [#size_t#]sizeof(<#expression-or-type#>)196  // CHECK-CC4-NEXT: COMPLETION: Pattern : [#size_t#]sizeof...(<#parameter-pack#>)197  // CHECK-CC4-NEXT: COMPLETION: Pattern : static_cast<<#type#>>(<#expression#>)198  // CHECK-CC4-NEXT: COMPLETION: struct199  // CHECK-CC4-NEXT: COMPLETION: t : t200  // CHECK-CC4-NEXT: COMPLETION: Pattern : [#void#]throw <#expression#>201  // CHECK-CC4-NEXT: COMPLETION: Pattern : [#bool#]true202  // CHECK-CC4-NEXT: COMPLETION: TYPEDEF : TYPEDEF203  // CHECK-CC4-NEXT: COMPLETION: Pattern : [#std::type_info#]typeid(<#expression-or-type#>)204  // CHECK-CC4-NEXT: COMPLETION: Pattern : typename <#name#>205  // CHECK-CC4-NEXT: COMPLETION: Pattern : typeof <#expression#>206  // CHECK-CC4-NEXT: COMPLETION: Pattern : typeof(<#type#>)207  // CHECK-CC4-NEXT: COMPLETION: union208  // CHECK-CC4-NEXT: COMPLETION: unsigned209  // CHECK-CC4-NEXT: COMPLETION: void210  // CHECK-CC4-NEXT: COMPLETION: volatile211  // CHECK-CC4-NEXT: COMPLETION: wchar_t212  // CHECK-CC4-NEXT: COMPLETION: X : X213  // CHECK-CC4-NEXT: COMPLETION: z : [#void#]z(<#int#>)214 215  // RUN: %clang_cc1 -fsyntax-only -fno-rtti -code-completion-patterns -code-completion-at=%s:6:14 -std=gnu++11 %s -o - | FileCheck -check-prefix=CHECK-NO-RTTI %s216  // CHECK-NO-RTTI: COMPLETION: bool217  // CHECK-NO-RTTI-NEXT: COMPLETION: char218  // CHECK-NO-RTTI-NEXT: COMPLETION: char16_t219  // CHECK-NO-RTTI-NEXT: COMPLETION: char32_t220  // CHECK-NO-RTTI-NEXT: COMPLETION: class221  // CHECK-NO-RTTI-NEXT: COMPLETION: const222  // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : const_cast<<#type#>>(<#expression#>)223  // CHECK-NO-RTTI: COMPLETION: Pattern : [#void#]delete <#expression#>224  // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : [#void#]delete [] <#expression#>225  // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : do {226  // CHECK-NO-RTTI-NEXT: <#statements#>227  // CHECK-NO-RTTI-NEXT: }228  // CHECK-NO-RTTI: COMPLETION: double229  // CHECK-NO-RTTI-NOT: dynamic_cast230  // CHECK-NO-RTTI: COMPLETION: enum231  // CHECK-NO-RTTI-NEXT: COMPLETION: extern232  // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : [#bool#]false233  // CHECK-NO-RTTI-NEXT: COMPLETION: float234  // CHECK-NO-RTTI-NEXT: COMPLETION: foo : [#void#]foo()235  // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : for (<#init-statement#>; <#condition#>; <#inc-expression#>) {236  // CHECK-NO-RTTI: COMPLETION: Pattern : goto <#label#>;237  // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : if (<#condition#>) {238  // CHECK-NO-RTTI-NEXT: <#statements#>239  // CHECK-NO-RTTI-NEXT: }240  // CHECK-NO-RTTI: COMPLETION: int241  // CHECK-NO-RTTI-NEXT: COMPLETION: long242  // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : new <#type#>(<#expressions#>)243  // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : new <#type#>[<#size#>](<#expressions#>)244  // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : [#bool#]noexcept(<#expression#>)245  // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : [#std::nullptr_t#]nullptr246  // CHECK-NO-RTTI-NEXT: COMPLETION: operator247  // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : reinterpret_cast<<#type#>>(<#expression#>)248  // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : return;249  // CHECK-NO-RTTI-NEXT: COMPLETION: short250  // CHECK-NO-RTTI-NEXT: COMPLETION: signed251  // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : [#size_t#]sizeof(<#expression-or-type#>)252  // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : [#size_t#]sizeof...(<#parameter-pack#>)253  // CHECK-NO-RTTI-NEXT: COMPLETION: static254  // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : static_assert(<#expression#>, <#message#>);255  // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : static_cast<<#type#>>(<#expression#>)256  // CHECK-NO-RTTI-NEXT: COMPLETION: struct257  // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : switch (<#condition#>) {258  // CHECK-NO-RTTI: COMPLETION: t : t259  // CHECK-NO-RTTI-NOT: throw260  // CHECK-NO-RTTI: COMPLETION: Pattern : [#bool#]true261  // CHECK-NO-RTTI-NOT: try262  // CHECK-NO-RTTI: COMPLETION: TYPEDEF : TYPEDEF263  // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : typedef <#type#> <#name#>;264  // CHECK-NO-RTTI-NOT: typeid265  // CHECK-NO-RTTI: COMPLETION: Pattern : typename <#name#>266  // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : typeof <#expression#>267  // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : typeof(<#type#>)268  // CHECK-NO-RTTI-NEXT: COMPLETION: union269  // CHECK-NO-RTTI-NEXT: COMPLETION: unsigned270  // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : using <#name#> = <#type#>;271  // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : using namespace <#identifier#>;272  // CHECK-NO-RTTI-NEXT: COMPLETION: void273  // CHECK-NO-RTTI-NEXT: COMPLETION: volatile274  // CHECK-NO-RTTI-NEXT: COMPLETION: wchar_t275  // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : while (<#condition#>) {276  // CHECK-NO-RTTI: COMPLETION: X : X277  // CHECK-NO-RTTI-NEXT: COMPLETION: y : [#int#]y278  // CHECK-NO-RTTI-NEXT: COMPLETION: z : [#void#]z(<#int#>)279