Skip to content

[clang + libstdc++] Error when using Clang 19 to compile Catch2's REQUIRE over tuple against libstdc++ in C++23 modeΒ #113087

@horenmar

Description

@horenmar

I got a bug report in Catch2, that with the specific combination of

  • Clang 19.1
  • libstdc++ as the stdlib
  • C++23 as the language mode

a relatively simple assertion comparing two tuples does not compile.

example

#include <catch2/catch_test_macros.hpp>
#include <tuple>

TEST_CASE("tuples") {
    std::tuple<int, int> bob;
    CHECK(bob == std::make_tuple(4, 2));
}

This code compiles when the language mode is C++20, when using Clang 18 + C++23, when using Clang 19 + libc++, or when using GCC + libstdc++, but not in the specific Clang 19 + libstdc++ + C++23 combination.

Metadata

Metadata

Assignees

No one assigned

    Labels

    c++20clang:frontendLanguage frontend issues, e.g. anything involving "Sema"confirmedVerified by a second party

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions