-
Notifications
You must be signed in to change notification settings - Fork 14.5k
Open
Labels
clang:frontendLanguage frontend issues, e.g. anything involving "Sema"Language frontend issues, e.g. anything involving "Sema"confirmedVerified by a second partyVerified by a second partyconstevalC++20 constevalC++20 constevallambdaC++11 lambda expressionsC++11 lambda expressionsrejects-valid
Description
This C++23 program
#include <memory>
consteval auto func1() {
return std::make_unique<int>();
}
template <typename T>
consteval void func2() {
[](auto) -> void {
func1();
}(0);
}
int main() {
func2<int>();
}
is accepted by GCC, but Clang prints weird error:
error: immediate function 'operator()<int>' used before it is defined
9 | [](auto) -> void {
Online demo: https://gcc.godbolt.org/z/Kb8M7c3nb
Original discussion: https://stackoverflow.com/q/79221393/7325599
Metadata
Metadata
Assignees
Labels
clang:frontendLanguage frontend issues, e.g. anything involving "Sema"Language frontend issues, e.g. anything involving "Sema"confirmedVerified by a second partyVerified by a second partyconstevalC++20 constevalC++20 constevallambdaC++11 lambda expressionsC++11 lambda expressionsrejects-valid