(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.dg/
cpp1z/
constexpr-aggr-base1.C
// PR c++/105795
// { dg-do compile { target c++17 } }

struct empty
{};

template <typename T>
struct tuple_holder
{
    [[no_unique_address]] T value;
};

struct tuple : tuple_holder<int>, tuple_holder<empty>
{};

constexpr auto make_tuple(int&& i, empty&& e)
{
    return tuple{i, e};
}

constexpr int foo()
{
    auto tuple = make_tuple(1, empty{});
    return static_cast<const tuple_holder<int>&>(tuple).value;
}

static_assert (foo() == 1);