brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.3 KiB · 9d18ced Raw
104 lines · cpp
1void loops() {2  while (true) {3    // line 34  }5  for (;;) {6    // line 67  }8  do {9    // line 910  } while (true);11  // line 1112}13// RUN: %clang_cc1 -fsyntax-only -code-completion-patterns -code-completion-at=%s:3:1 %s -o - | FileCheck -check-prefix=LOOP %s14// RUN: %clang_cc1 -fsyntax-only -code-completion-patterns -code-completion-at=%s:6:1 %s -o - | FileCheck -check-prefix=LOOP %s15// RUN: %clang_cc1 -fsyntax-only -code-completion-patterns -code-completion-at=%s:9:1 %s -o - | FileCheck -check-prefix=LOOP %s16// 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 %s22// 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 27int value_return() {28  // line 2829}30void void_return() {31  // line 3132}33bool bool_return() {34  // line 3435}36int *ptr_return() {37  // line 3738}39struct Cls {};40int Cls::*memptr_return() {41  // line 4142}43// RUN: %clang_cc1 -fsyntax-only -code-completion-patterns -code-completion-at=%s:28:1 %s -o - | FileCheck -check-prefix=RETURN-VAL %s44// RETURN-VAL-NOT: COMPLETION: Pattern : return;45// RETURN-VAL-NOT: COMPLETION: Pattern : return false;46// RETURN-VAL-NOT: COMPLETION: Pattern : return true;47// RETURN-VAL-NOT: COMPLETION: Pattern : return nullptr;48// RETURN-VAL: COMPLETION: Pattern : return <#expression#>;{{$}}49 50// RUN: %clang_cc1 -fsyntax-only -code-completion-patterns -code-completion-at=%s:31:1 %s -o - | FileCheck -check-prefix=RETURN-VOID %s51// RETURN-VOID-NOT: COMPLETION: Pattern : return false;52// RETURN-VOID-NOT: COMPLETION: Pattern : return true;53// RETURN-VOID-NOT: COMPLETION: Pattern : return <#expression#>;54// RETURN-VOID-NOT: COMPLETION: Pattern : return nullptr;55// RETURN-VOID: COMPLETION: Pattern : return;{{$}}56 57// RUN: %clang_cc1 -fsyntax-only -code-completion-patterns -code-completion-at=%s:34:1 %s -o - | FileCheck -check-prefix=RETURN-BOOL %s58// RETURN-BOOL-NOT: COMPLETION: Pattern : return;59// RETURN-BOOL-NOT: COMPLETION: Pattern : return nullptr;60// RETURN-BOOL: COMPLETION: Pattern : return <#expression#>;{{$}}61// RETURN-BOOL: COMPLETION: Pattern : return false;{{$}}62// RETURN-BOOL: COMPLETION: Pattern : return true;{{$}}63 64// Check both pointer and member pointer return types.65// RUN: %clang_cc1 -fsyntax-only -std=c++11 -code-completion-patterns -code-completion-at=%s:37:1 %s -o - | FileCheck -check-prefix=RETURN-PTR %s66// RUN: %clang_cc1 -fsyntax-only -std=c++11 -code-completion-patterns -code-completion-at=%s:41:1 %s -o - | FileCheck -check-prefix=RETURN-PTR %s67// RETURN-PTR-NOT: COMPLETION: Pattern : return false;{{$}}68// RETURN-PTR-NOT: COMPLETION: Pattern : return true;{{$}}69// RETURN-PTR-NOT: COMPLETION: Pattern : return;70// RETURN-PTR: COMPLETION: Pattern : return <#expression#>;{{$}}71// RETURN-PTR: COMPLETION: Pattern : return nullptr;72 73// 'return nullptr' is not available before C++11.74// 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 %s75// 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 %s76// RETURN-PTR-STD03-NOT: COMPLETION: Pattern : return nullptr;77 78void something();79 80void unbraced_if() {81  if (true)82    something();83  // line 8384}85// RUN: %clang_cc1 -fsyntax-only -code-completion-patterns -code-completion-at=%s:83:3 %s -o - | FileCheck -check-prefix=UNBRACED-IF %s86// UNBRACED-IF: COMPLETION: Pattern : else87// UNBRACED-IF-NEXT: <#statement#>;88// UNBRACED-IF: COMPLETION: Pattern : else if (<#condition#>)89// UNBRACED-IF-NEXT: <#statement#>;90 91void braced_if() {92  if (true) {93    something();94  }95  // line 9596}97// RUN: %clang_cc1 -fsyntax-only -code-completion-patterns -code-completion-at=%s:95:3 %s -o - | FileCheck -check-prefix=BRACED-IF %s98// BRACED-IF: COMPLETION: Pattern : else {99// BRACED-IF-NEXT: <#statements#>100// BRACED-IF-NEXT: }101// BRACED-IF: COMPLETION: Pattern : else if (<#condition#>) {102// BRACED-IF-NEXT: <#statements#>103// BRACED-IF-NEXT: }104