| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229 |
- struct X { int x; };
- void z(int);
- typedef struct t TYPEDEF;
- void foo() {
- int y = 17;
- // RUN: %clang_cc1 -fsyntax-only -fcxx-exceptions -code-completion-patterns -code-completion-at=%s:6:14 %s -o - | FileCheck -check-prefix=CHECK-CC1 %s
- // CHECK-CC1: COMPLETION: bool
- // CHECK-CC1-NEXT: COMPLETION: char
- // CHECK-CC1-NEXT: COMPLETION: class
- // CHECK-CC1-NEXT: COMPLETION: const
- // CHECK-CC1-NEXT: COMPLETION: Pattern : const_cast<<#type#>>(<#expression#>)
- // CHECK-CC1: COMPLETION: Pattern : [#void#]delete <#expression#>
- // CHECK-CC1-NEXT: COMPLETION: Pattern : [#void#]delete [] <#expression#>
- // CHECK-CC1-NEXT: COMPLETION: Pattern : do{<#statements#>
- // CHECK-CC1: COMPLETION: double
- // CHECK-CC1-NEXT: COMPLETION: Pattern : dynamic_cast<<#type#>>(<#expression#>)
- // CHECK-CC1-NEXT: COMPLETION: enum
- // CHECK-CC1-NEXT: COMPLETION: extern
- // CHECK-CC1-NEXT: COMPLETION: Pattern : [#bool#]false
- // CHECK-CC1-NEXT: COMPLETION: float
- // CHECK-CC1-NEXT: COMPLETION: foo : [#void#]foo()
- // CHECK-CC1-NEXT: COMPLETION: Pattern : for(<#init-statement#>;<#condition#>;<#inc-expression#>){
- // CHECK-CC1: COMPLETION: Pattern : goto <#label#>
- // CHECK-CC1-NEXT: COMPLETION: Pattern : if(<#condition#>){<#statements#>
- // CHECK-CC1: COMPLETION: int
- // CHECK-CC1-NEXT: COMPLETION: long
- // CHECK-CC1-NEXT: COMPLETION: Pattern : new <#type#>(<#expressions#>)
- // CHECK-CC1-NEXT: COMPLETION: Pattern : new <#type#>[<#size#>](<#expressions#>)
- // CHECK-CC1-NEXT: COMPLETION: operator
- // CHECK-CC1-NEXT: COMPLETION: Pattern : reinterpret_cast<<#type#>>(<#expression#>)
- // CHECK-CC1-NEXT: COMPLETION: Pattern : return
- // CHECK-CC1-NEXT: COMPLETION: short
- // CHECK-CC1-NEXT: COMPLETION: signed
- // CHECK-CC1-NEXT: COMPLETION: Pattern : [#size_t#]sizeof(<#expression-or-type#>)
- // CHECK-CC1-NEXT: COMPLETION: static
- // CHECK-CC1-NEXT: COMPLETION: Pattern : static_cast<<#type#>>(<#expression#>)
- // CHECK-CC1-NEXT: COMPLETION: struct
- // CHECK-CC1-NEXT: COMPLETION: Pattern : switch(<#condition#>){
- // CHECK-CC1: COMPLETION: t : t
- // CHECK-CC1-NEXT: COMPLETION: Pattern : [#void#]throw <#expression#>
- // CHECK-CC1-NEXT: COMPLETION: Pattern : [#bool#]true
- // CHECK-CC1-NEXT: COMPLETION: Pattern : try{<#statements#>
- // CHECK-CC1: COMPLETION: TYPEDEF : TYPEDEF
- // CHECK-CC1-NEXT: COMPLETION: Pattern : typedef <#type#> <#name#>
- // CHECK-CC1-NEXT: COMPLETION: Pattern : [#std::type_info#]typeid(<#expression-or-type#>)
- // CHECK-CC1-NEXT: COMPLETION: Pattern : typename <#qualifier#>::<#name#>
- // CHECK-CC1-NEXT: COMPLETION: Pattern : typeof <#expression#>
- // CHECK-CC1-NEXT: COMPLETION: Pattern : typeof(<#type#>)
- // CHECK-CC1-NEXT: COMPLETION: union
- // CHECK-CC1-NEXT: COMPLETION: unsigned
- // CHECK-CC1-NEXT: COMPLETION: Pattern : using namespace <#identifier#>
- // CHECK-CC1-NEXT: COMPLETION: void
- // CHECK-CC1-NEXT: COMPLETION: volatile
- // CHECK-CC1-NEXT: COMPLETION: wchar_t
- // CHECK-CC1-NEXT: COMPLETION: Pattern : while(<#condition#>){<#statements#>
- // CHECK-CC1: COMPLETION: X : X
- // CHECK-CC1-NEXT: COMPLETION: y : [#int#]y
- // CHECK-CC1-NEXT: COMPLETION: z : [#void#]z(<#int#>)
- // RUN: %clang_cc1 -fsyntax-only -code-completion-patterns -code-completion-at=%s:4:1 %s -o - | FileCheck -check-prefix=CHECK-CC2 %s
- // CHECK-CC2: COMPLETION: Pattern : asm(<#string-literal#>)
- // CHECK-CC2-NEXT: COMPLETION: bool
- // CHECK-CC2-NEXT: COMPLETION: char
- // CHECK-CC2-NEXT: COMPLETION: class
- // CHECK-CC2-NEXT: COMPLETION: const
- // CHECK-CC2-NEXT: COMPLETION: double
- // CHECK-CC2-NEXT: COMPLETION: enum
- // CHECK-CC2-NEXT: COMPLETION: extern
- // CHECK-CC2-NEXT: COMPLETION: float
- // CHECK-CC2-NEXT: COMPLETION: inline
- // CHECK-CC2-NEXT: COMPLETION: int
- // CHECK-CC2-NEXT: COMPLETION: long
- // CHECK-CC2-NEXT: COMPLETION: Pattern : namespace <#identifier#>{<#declarations#>
- // CHECK-CC2: COMPLETION: Pattern : namespace <#name#> = <#namespace#>
- // CHECK-CC2-NEXT: COMPLETION: operator
- // CHECK-CC2-NEXT: COMPLETION: short
- // CHECK-CC2-NEXT: COMPLETION: signed
- // CHECK-CC2-NEXT: COMPLETION: static
- // CHECK-CC2-NEXT: COMPLETION: struct
- // CHECK-CC2-NEXT: COMPLETION: t : t
- // CHECK-CC2-NEXT: COMPLETION: Pattern : template <#declaration#>
- // CHECK-CC2-NEXT: COMPLETION: Pattern : template<<#parameters#>>
- // CHECK-CC2-NEXT: COMPLETION: TYPEDEF : TYPEDEF
- // CHECK-CC2-NEXT: COMPLETION: Pattern : typedef <#type#> <#name#>
- // CHECK-CC2-NEXT: COMPLETION: Pattern : typename <#qualifier#>::<#name#>
- // CHECK-CC2-NEXT: COMPLETION: Pattern : typeof <#expression#>
- // CHECK-CC2-NEXT: COMPLETION: Pattern : typeof(<#type#>)
- // CHECK-CC2-NEXT: COMPLETION: union
- // CHECK-CC2-NEXT: COMPLETION: unsigned
- // CHECK-CC2-NEXT: COMPLETION: Pattern : using namespace <#identifier#>
- // CHECK-CC2-NEXT: COMPLETION: Pattern : using <#qualifier#>::<#name#>
- // CHECK-CC2-NEXT: COMPLETION: void
- // CHECK-CC2-NEXT: COMPLETION: volatile
- // CHECK-CC2-NEXT: COMPLETION: wchar_t
- // CHECK-CC2-NEXT: COMPLETION: X : X
- // RUN: %clang_cc1 -fsyntax-only -code-completion-patterns -code-completion-at=%s:1:19 %s -o - | FileCheck -check-prefix=CHECK-CC3 %s
- // CHECK-CC3: COMPLETION: bool
- // CHECK-CC3-NEXT: COMPLETION: char
- // CHECK-CC3-NEXT: COMPLETION: class
- // CHECK-CC3-NEXT: COMPLETION: const
- // CHECK-CC3-NEXT: COMPLETION: double
- // CHECK-CC3-NEXT: COMPLETION: enum
- // CHECK-CC3-NEXT: COMPLETION: explicit
- // CHECK-CC3-NEXT: COMPLETION: extern
- // CHECK-CC3-NEXT: COMPLETION: float
- // CHECK-CC3-NEXT: COMPLETION: friend
- // CHECK-CC3-NEXT: COMPLETION: inline
- // CHECK-CC3-NEXT: COMPLETION: int
- // CHECK-CC3-NEXT: COMPLETION: long
- // CHECK-CC3-NEXT: COMPLETION: mutable
- // CHECK-CC3-NEXT: COMPLETION: operator
- // CHECK-CC3-NEXT: COMPLETION: Pattern : private:
- // CHECK-CC3-NEXT: COMPLETION: Pattern : protected:
- // CHECK-CC3-NEXT: COMPLETION: Pattern : public:
- // CHECK-CC3-NEXT: COMPLETION: short
- // CHECK-CC3-NEXT: COMPLETION: signed
- // CHECK-CC3-NEXT: COMPLETION: static
- // CHECK-CC3-NEXT: COMPLETION: struct
- // CHECK-CC3-NEXT: COMPLETION: Pattern : template<<#parameters#>>
- // CHECK-CC3-NEXT: COMPLETION: Pattern : typedef <#type#> <#name#>
- // CHECK-CC3-NEXT: COMPLETION: Pattern : typename <#qualifier#>::<#name#>
- // CHECK-CC3-NEXT: COMPLETION: Pattern : typeof <#expression#>
- // CHECK-CC3-NEXT: COMPLETION: Pattern : typeof(<#type#>)
- // CHECK-CC3-NEXT: COMPLETION: union
- // CHECK-CC3-NEXT: COMPLETION: unsigned
- // CHECK-CC3-NEXT: COMPLETION: Pattern : using <#qualifier#>::<#name#>
- // CHECK-CC3-NEXT: COMPLETION: virtual
- // CHECK-CC3-NEXT: COMPLETION: void
- // CHECK-CC3-NEXT: COMPLETION: volatile
- // CHECK-CC3-NEXT: COMPLETION: wchar_t
- // CHECK-CC3-NEXT: COMPLETION: X : X
- // RUN: %clang_cc1 -fsyntax-only -fcxx-exceptions -code-completion-patterns -code-completion-at=%s:6:11 %s -o - | FileCheck -check-prefix=CHECK-CC4 %s
- // CHECK-CC4: COMPLETION: bool
- // CHECK-CC4-NEXT: COMPLETION: char
- // CHECK-CC4-NEXT: COMPLETION: class
- // CHECK-CC4-NEXT: COMPLETION: const
- // CHECK-CC4-NEXT: COMPLETION: Pattern : const_cast<<#type#>>(<#expression#>)
- // CHECK-CC4-NEXT: COMPLETION: Pattern : [#void#]delete <#expression#>
- // CHECK-CC4-NEXT: COMPLETION: Pattern : [#void#]delete [] <#expression#>
- // CHECK-CC4-NEXT: COMPLETION: double
- // CHECK-CC4-NEXT: COMPLETION: Pattern : dynamic_cast<<#type#>>(<#expression#>)
- // CHECK-CC4-NEXT: COMPLETION: enum
- // CHECK-CC4-NEXT: COMPLETION: Pattern : [#bool#]false
- // CHECK-CC4-NEXT: COMPLETION: float
- // CHECK-CC4-NEXT: COMPLETION: foo : [#void#]foo()
- // CHECK-CC4-NEXT: COMPLETION: int
- // CHECK-CC4-NEXT: COMPLETION: long
- // CHECK-CC4-NEXT: COMPLETION: Pattern : new <#type#>(<#expressions#>)
- // CHECK-CC4-NEXT: COMPLETION: Pattern : new <#type#>[<#size#>](<#expressions#>)
- // CHECK-CC4-NEXT: COMPLETION: operator
- // CHECK-CC4-NEXT: COMPLETION: Pattern : reinterpret_cast<<#type#>>(<#expression#>)
- // CHECK-CC4-NEXT: COMPLETION: short
- // CHECK-CC4-NEXT: COMPLETION: signed
- // CHECK-CC4-NEXT: COMPLETION: Pattern : [#size_t#]sizeof(<#expression-or-type#>)
- // CHECK-CC4-NEXT: COMPLETION: Pattern : static_cast<<#type#>>(<#expression#>)
- // CHECK-CC4-NEXT: COMPLETION: struct
- // CHECK-CC4-NEXT: COMPLETION: t : t
- // CHECK-CC4-NEXT: COMPLETION: Pattern : [#void#]throw <#expression#>
- // CHECK-CC4-NEXT: COMPLETION: Pattern : [#bool#]true
- // CHECK-CC4-NEXT: COMPLETION: TYPEDEF : TYPEDEF
- // CHECK-CC4-NEXT: COMPLETION: Pattern : [#std::type_info#]typeid(<#expression-or-type#>)
- // CHECK-CC4-NEXT: COMPLETION: Pattern : typename <#qualifier#>::<#name#>
- // CHECK-CC4-NEXT: COMPLETION: Pattern : typeof <#expression#>
- // CHECK-CC4-NEXT: COMPLETION: Pattern : typeof(<#type#>)
- // CHECK-CC4-NEXT: COMPLETION: union
- // CHECK-CC4-NEXT: COMPLETION: unsigned
- // CHECK-CC4-NEXT: COMPLETION: void
- // CHECK-CC4-NEXT: COMPLETION: volatile
- // CHECK-CC4-NEXT: COMPLETION: wchar_t
- // CHECK-CC4-NEXT: COMPLETION: X : X
- // CHECK-CC4-NEXT: COMPLETION: y : [#int#]y
- // CHECK-CC4-NEXT: COMPLETION: z : [#void#]z(<#int#>)
- // RUN: %clang_cc1 -fsyntax-only -fno-rtti -code-completion-patterns -code-completion-at=%s:6:14 %s -o - | FileCheck -check-prefix=CHECK-NO-RTTI %s
- // CHECK-NO-RTTI: COMPLETION: bool
- // CHECK-NO-RTTI-NEXT: COMPLETION: char
- // CHECK-NO-RTTI-NEXT: COMPLETION: class
- // CHECK-NO-RTTI-NEXT: COMPLETION: const
- // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : const_cast<<#type#>>(<#expression#>)
- // CHECK-NO-RTTI: COMPLETION: Pattern : [#void#]delete <#expression#>
- // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : [#void#]delete [] <#expression#>
- // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : do{<#statements#>
- // CHECK-NO-RTTI: COMPLETION: double
- // CHECK-NO-RTTI-NOT: dynamic_cast
- // CHECK-NO-RTTI: COMPLETION: enum
- // CHECK-NO-RTTI-NEXT: COMPLETION: extern
- // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : [#bool#]false
- // CHECK-NO-RTTI-NEXT: COMPLETION: float
- // CHECK-NO-RTTI-NEXT: COMPLETION: foo : [#void#]foo()
- // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : for(<#init-statement#>;<#condition#>;<#inc-expression#>){
- // CHECK-NO-RTTI: COMPLETION: Pattern : goto <#label#>
- // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : if(<#condition#>){<#statements#>
- // CHECK-NO-RTTI: COMPLETION: int
- // CHECK-NO-RTTI-NEXT: COMPLETION: long
- // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : new <#type#>(<#expressions#>)
- // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : new <#type#>[<#size#>](<#expressions#>)
- // CHECK-NO-RTTI-NEXT: COMPLETION: operator
- // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : reinterpret_cast<<#type#>>(<#expression#>)
- // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : return
- // CHECK-NO-RTTI-NEXT: COMPLETION: short
- // CHECK-NO-RTTI-NEXT: COMPLETION: signed
- // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : [#size_t#]sizeof(<#expression-or-type#>)
- // CHECK-NO-RTTI-NEXT: COMPLETION: static
- // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : static_cast<<#type#>>(<#expression#>)
- // CHECK-NO-RTTI-NEXT: COMPLETION: struct
- // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : switch(<#condition#>){
- // CHECK-NO-RTTI: COMPLETION: t : t
- // CHECK-NO-RTTI-NOT: throw
- // CHECK-NO-RTTI: COMPLETION: Pattern : [#bool#]true
- // CHECK-NO-RTTI-NOT: try
- // CHECK-NO-RTTI: COMPLETION: TYPEDEF : TYPEDEF
- // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : typedef <#type#> <#name#>
- // CHECK-NO-RTTI-NOT: typeid
- // CHECK-NO-RTTI: COMPLETION: Pattern : typename <#qualifier#>::<#name#>
- // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : typeof <#expression#>
- // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : typeof(<#type#>)
- // CHECK-NO-RTTI-NEXT: COMPLETION: union
- // CHECK-NO-RTTI-NEXT: COMPLETION: unsigned
- // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : using namespace <#identifier#>
- // CHECK-NO-RTTI-NEXT: COMPLETION: void
- // CHECK-NO-RTTI-NEXT: COMPLETION: volatile
- // CHECK-NO-RTTI-NEXT: COMPLETION: wchar_t
- // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : while(<#condition#>){<#statements#>
- // CHECK-NO-RTTI: COMPLETION: X : X
- // CHECK-NO-RTTI-NEXT: COMPLETION: y : [#int#]y
- // CHECK-NO-RTTI-NEXT: COMPLETION: z : [#void#]z(<#int#>)
|