31 lines · cpp
1template <bool Flag>2void test() {3 if constexpr (Flag) {4 return;5 }6 // RUN: %clang_cc1 -fsyntax-only -std=c++17 -code-completion-at=%s:3:7 %s | FileCheck -check-prefix=CHECK-CXX17 %s7 // RUN: %clang_cc1 -fsyntax-only -std=c++17 -code-completion-patterns -code-completion-at=%s:3:7 %s | FileCheck -check-prefix=CHECK-PATTERN-CXX17 %s8 // RUN: %clang_cc1 -fsyntax-only -std=c++23 -code-completion-at=%s:3:7 %s | FileCheck -check-prefix=CHECK-CXX23 %s9 // RUN: %clang_cc1 -fsyntax-only -std=c++23 -code-completion-patterns -code-completion-at=%s:3:7 %s | FileCheck -check-prefix=CHECK-PATTERN-CXX23 %s10 // CHECK-CXX17: COMPLETION: constexpr11 // CHECK-PATTERN-CXX17: COMPLETION: Pattern : constexpr (<#condition#>) {12 // CHECK-PATTERN-CXX17: <#statements#>13 // CHECK-PATTERN-CXX17: }14 // CHECK-CXX23: COMPLETION: consteval15 // CHECK-CXX23: COMPLETION: constexpr16 // CHECK-PATTERN-CXX23: COMPLETION: Pattern : consteval {17 // CHECK-PATTERN-CXX23: <#statements#>18 // CHECK-PATTERN-CXX23: }19 // CHECK-PATTERN-CXX23: COMPLETION: Pattern : constexpr (<#condition#>) {20 // CHECK-PATTERN-CXX23: <#statements#>21 // CHECK-PATTERN-CXX23: }22 if !c23 // RUN: %clang_cc1 -fsyntax-only -std=c++23 -code-completion-at=%s:22:8 %s -o - | FileCheck -check-prefix=CHECK-CXX23-EXCLAIM %s24 // RUN: %clang_cc1 -fsyntax-only -std=c++23 -code-completion-patterns -code-completion-at=%s:22:8 %s -o - | FileCheck -check-prefix=CHECK-PATTERN-CXX23-EXCLAIM %s25 // CHECK-CXX23-EXCLAIM: COMPLETION: consteval26 // CHECK-CXX23-EXCLAIM-NOT: constexpr27 // CHECK-PATTERN-CXX23-EXCLAIM: COMPLETION: Pattern : consteval {28 // CHECK-PATTERN-CXX23-EXCLAIM: <#statements#>29 // CHECK-PATTERN-CXX23-EXCLAIM: }30}31