mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-26 22:26:05 +00:00

Summary: currently for: ``` template<typename ... T> void f(T... t) { auto l = [t...]{}; } ``` `clang -ast-print file.cpp` outputs: ``` template <typename ...T> void f(T ...t) { auto l = [t] { } ; } ``` notice that there is not `...` in the capture list of the lambda. this patch fixes this issue. and add test for it. Patch by Tyker Reviewers: rsmith Reviewed By: rsmith Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D61556 llvm-svn: 359980
36 lines
495 B
C++
36 lines
495 B
C++
// RUN: %clang_cc1 -ast-print -std=c++17 %s | FileCheck %s
|
|
|
|
struct S {
|
|
template<typename ... T>
|
|
void test1(int i, T... t) {
|
|
{
|
|
auto lambda = [i]{};
|
|
//CHECK: [i] {
|
|
}
|
|
{
|
|
auto lambda = [=]{};
|
|
//CHECK: [=] {
|
|
}
|
|
{
|
|
auto lambda = [&]{};
|
|
//CHECK: [&] {
|
|
}
|
|
{
|
|
auto lambda = [t..., i]{};
|
|
//CHECK: [t..., i] {
|
|
}
|
|
{
|
|
auto lambda = [&t...]{};
|
|
//CHECK: [&t...] {
|
|
}
|
|
{
|
|
auto lambda = [this, &t...]{};
|
|
//CHECK: [this, &t...] {
|
|
}
|
|
{
|
|
auto lambda = [t..., this]{};
|
|
//CHECK: [t..., this] {
|
|
}
|
|
}
|
|
|
|
}; |