Skip to content

Clang crashes with nested std::apply() calls #93256

Closed
@Robochu

Description

@Robochu

The following code causes Clang to crash:

#include <tuple>

template<typename A, typename B>
void bar(A a, B b) {}

template<typename... A, typename... B>
void foo(std::tuple<A...> a, std::tuple<B...> b) {
	std::apply([b](auto... a) {
		(std::apply([a](auto... b) {
			(bar(a, b), ...);
		}, b), ...);
	}, a);
}

int main() {
	foo(std::tuple<>{}, std::tuple<>{});
}

https://godbolt.org/z/jP8vo8Mz7

Metadata

Metadata

Assignees

No one assigned

    Labels

    clang:frontendLanguage frontend issues, e.g. anything involving "Sema"confirmedVerified by a second partycrashPrefer [crash-on-valid] or [crash-on-invalid]

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions