1 void loops() {
2   while (true) {
3     // line 3
4   }
5   for (;;) {
6     // line 6
7   }
8   do {
9     // line 9
10   } while (true);
11   // line 11
12 }
13 // RUN: %clang_cc1 -fsyntax-only -code-completion-patterns -code-completion-at=%s:3:1 %s -o - | FileCheck -check-prefix=LOOP %s
14 // RUN: %clang_cc1 -fsyntax-only -code-completion-patterns -code-completion-at=%s:6:1 %s -o - | FileCheck -check-prefix=LOOP %s
15 // RUN: %clang_cc1 -fsyntax-only -code-completion-patterns -code-completion-at=%s:9:1 %s -o - | FileCheck -check-prefix=LOOP %s
16 // LOOP: COMPLETION: Pattern : break;{{$}}
17 // LOOP: COMPLETION: Pattern : continue;{{$}}
18 // LOOP: COMPLETION: Pattern : goto <#label#>;{{$}}
19 // LOOP: COMPLETION: Pattern : return;{{$}}
20 //
21 // RUN: %clang_cc1 -fsyntax-only -code-completion-patterns -code-completion-at=%s:11:1 %s -o - | FileCheck -check-prefix=OUTSIDE-LOOP %s
22 // OUTSIDE-LOOP-NOT: COMPLETION: Pattern : break;{{$}}
23 // OUTSIDE-LOOP-NOT: COMPLETION: Pattern : continue;{{$}}
24 // OUTSIDE-LOOP: COMPLETION: Pattern : goto <#label#>;{{$}}
25 // OUTSIDE-LOOP: COMPLETION: Pattern : return;{{$}}
26 
27 int value_return() {
28   // line 28
29 }
30 void void_return() {
31   // line 31
32 }
33 bool bool_return() {
34   // line 34
35 }
36 // RUN: %clang_cc1 -fsyntax-only -code-completion-patterns -code-completion-at=%s:28:1 %s -o - | FileCheck -check-prefix=RETURN-VAL %s
37 // RETURN-VAL-NOT: COMPLETION: Pattern : return;
38 // RETURN-VAL-NOT: COMPLETION: Pattern : return false;
39 // RETURN-VAL-NOT: COMPLETION: Pattern : return true;
40 // RETURN-VAL: COMPLETION: Pattern : return <#expression#>;{{$}}
41 
42 // RUN: %clang_cc1 -fsyntax-only -code-completion-patterns -code-completion-at=%s:31:1 %s -o - | FileCheck -check-prefix=RETURN-VOID %s
43 // RETURN-VOID-NOT: COMPLETION: Pattern : return false;
44 // RETURN-VOID-NOT: COMPLETION: Pattern : return true;
45 // RETURN-VOID-NOT: COMPLETION: Pattern : return <#expression#>;
46 // RETURN-VOID: COMPLETION: Pattern : return;{{$}}
47 
48 // RUN: %clang_cc1 -fsyntax-only -code-completion-patterns -code-completion-at=%s:34:1 %s -o - | FileCheck -check-prefix=RETURN-BOOL %s
49 // RETURN-BOOL-NOT: COMPLETION: Pattern : return;
50 // RETURN-BOOL: COMPLETION: Pattern : return <#expression#>;{{$}}
51 // RETURN-BOOL: COMPLETION: Pattern : return false;{{$}}
52 // RETURN-BOOL: COMPLETION: Pattern : return true;{{$}}
53