brintos

brintos / llvm-project-archived public Read only

0
0
Text · 831 B · 996c890 Raw
36 lines · cpp
1// RUN: %clang_cc1 %s -std=c++20 -fsyntax-only -Wno-vla-cxx-extension -verify2#include "Inputs/std-coroutine.h"3 4struct promise;5 6struct coroutine : std::coroutine_handle<promise> {7  using promise_type = ::promise;8};9 10struct promise11{12    coroutine get_return_object();13    std::suspend_always initial_suspend() noexcept;14    std::suspend_always final_suspend() noexcept;15    void return_void();16    void unhandled_exception();17};18 19// Test that we won't report the error incorrectly.20void bar(int n) {21  int array[n];22  return;23}24 25coroutine foo(int n) {26  int array[n]; // expected-error {{variable length arrays in a coroutine are not supported}}27  co_return;28}29 30void lambda() {31  [](int n) -> coroutine {32    int array[n]; // expected-error {{variable length arrays in a coroutine are not supported}}33    co_return;34  }(10);35}36