Skip to content

Clang crashes when using lambda captures inside a trailing return decltype #120802

Open
@fahadnayyar

Description

@fahadnayyar

Clang crashed on this example:

template<typename T>
consteval auto matches(T t)
{
    return [](auto u) -> decltype([u](){}()){}(t);
}

int main() {
    matches(0);
    return 0;
}

This issue was introduced from clang16.0.0 ( released on March 17, 2023) to clang 17.0.1 (released on September 9, 2023)
https://godbolt.org/z/q9v9q31f4

Gcc works fine for this example: https://godbolt.org/z/x8z41EKr4

Metadata

Metadata

Assignees

Labels

clang:frontendLanguage frontend issues, e.g. anything involving "Sema"constevalC++20 constevalcrashPrefer [crash-on-valid] or [crash-on-invalid]lambdaC++11 lambda expressions

Type

Projects

Status

No status

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions