forked from OSchip/llvm-project
77 lines
3.5 KiB
C++
77 lines
3.5 KiB
C++
void loops() {
|
|
while (true) {
|
|
// line 3
|
|
}
|
|
for (;;) {
|
|
// line 6
|
|
}
|
|
do {
|
|
// line 9
|
|
} while (true);
|
|
// line 11
|
|
}
|
|
// RUN: %clang_cc1 -fsyntax-only -code-completion-patterns -code-completion-at=%s:3:1 %s -o - | FileCheck -check-prefix=LOOP %s
|
|
// RUN: %clang_cc1 -fsyntax-only -code-completion-patterns -code-completion-at=%s:6:1 %s -o - | FileCheck -check-prefix=LOOP %s
|
|
// RUN: %clang_cc1 -fsyntax-only -code-completion-patterns -code-completion-at=%s:9:1 %s -o - | FileCheck -check-prefix=LOOP %s
|
|
// LOOP: COMPLETION: Pattern : break;{{$}}
|
|
// LOOP: COMPLETION: Pattern : continue;{{$}}
|
|
// LOOP: COMPLETION: Pattern : goto <#label#>;{{$}}
|
|
// LOOP: COMPLETION: Pattern : return;{{$}}
|
|
//
|
|
// RUN: %clang_cc1 -fsyntax-only -code-completion-patterns -code-completion-at=%s:11:1 %s -o - | FileCheck -check-prefix=OUTSIDE-LOOP %s
|
|
// OUTSIDE-LOOP-NOT: COMPLETION: Pattern : break;{{$}}
|
|
// OUTSIDE-LOOP-NOT: COMPLETION: Pattern : continue;{{$}}
|
|
// OUTSIDE-LOOP: COMPLETION: Pattern : goto <#label#>;{{$}}
|
|
// OUTSIDE-LOOP: COMPLETION: Pattern : return;{{$}}
|
|
|
|
int value_return() {
|
|
// line 28
|
|
}
|
|
void void_return() {
|
|
// line 31
|
|
}
|
|
bool bool_return() {
|
|
// line 34
|
|
}
|
|
int *ptr_return() {
|
|
// line 37
|
|
}
|
|
struct Cls {};
|
|
int Cls::*memptr_return() {
|
|
// line 41
|
|
}
|
|
// RUN: %clang_cc1 -fsyntax-only -code-completion-patterns -code-completion-at=%s:28:1 %s -o - | FileCheck -check-prefix=RETURN-VAL %s
|
|
// RETURN-VAL-NOT: COMPLETION: Pattern : return;
|
|
// RETURN-VAL-NOT: COMPLETION: Pattern : return false;
|
|
// RETURN-VAL-NOT: COMPLETION: Pattern : return true;
|
|
// RETURN-VAL-NOT: COMPLETION: Pattern : return nullptr;
|
|
// RETURN-VAL: COMPLETION: Pattern : return <#expression#>;{{$}}
|
|
|
|
// RUN: %clang_cc1 -fsyntax-only -code-completion-patterns -code-completion-at=%s:31:1 %s -o - | FileCheck -check-prefix=RETURN-VOID %s
|
|
// RETURN-VOID-NOT: COMPLETION: Pattern : return false;
|
|
// RETURN-VOID-NOT: COMPLETION: Pattern : return true;
|
|
// RETURN-VOID-NOT: COMPLETION: Pattern : return <#expression#>;
|
|
// RETURN-VOID-NOT: COMPLETION: Pattern : return nullptr;
|
|
// RETURN-VOID: COMPLETION: Pattern : return;{{$}}
|
|
|
|
// RUN: %clang_cc1 -fsyntax-only -code-completion-patterns -code-completion-at=%s:34:1 %s -o - | FileCheck -check-prefix=RETURN-BOOL %s
|
|
// RETURN-BOOL-NOT: COMPLETION: Pattern : return;
|
|
// RETURN-BOOL-NOT: COMPLETION: Pattern : return nullptr;
|
|
// RETURN-BOOL: COMPLETION: Pattern : return <#expression#>;{{$}}
|
|
// RETURN-BOOL: COMPLETION: Pattern : return false;{{$}}
|
|
// RETURN-BOOL: COMPLETION: Pattern : return true;{{$}}
|
|
|
|
// Check both pointer and member pointer return types.
|
|
// RUN: %clang_cc1 -fsyntax-only -std=c++11 -code-completion-patterns -code-completion-at=%s:37:1 %s -o - | FileCheck -check-prefix=RETURN-PTR %s
|
|
// RUN: %clang_cc1 -fsyntax-only -std=c++11 -code-completion-patterns -code-completion-at=%s:41:1 %s -o - | FileCheck -check-prefix=RETURN-PTR %s
|
|
// RETURN-PTR-NOT: COMPLETION: Pattern : return false;{{$}}
|
|
// RETURN-PTR-NOT: COMPLETION: Pattern : return true;{{$}}
|
|
// RETURN-PTR-NOT: COMPLETION: Pattern : return;
|
|
// RETURN-PTR: COMPLETION: Pattern : return <#expression#>;{{$}}
|
|
// RETURN-PTR: COMPLETION: Pattern : return nullptr;
|
|
|
|
// 'return nullptr' is not available before C++11.
|
|
// RUN: %clang_cc1 -fsyntax-only -std=c++03 -code-completion-patterns -code-completion-at=%s:37:1 %s -o - | FileCheck -check-prefix=RETURN-PTR-STD03 %s
|
|
// RUN: %clang_cc1 -fsyntax-only -std=c++03 -code-completion-patterns -code-completion-at=%s:41:1 %s -o - | FileCheck -check-prefix=RETURN-PTR-STD03 %s
|
|
// RETURN-PTR-STD03-NOT: COMPLETION: Pattern : return nullptr;
|