Files
clang-p2996/clang/test/SemaCXX/constexpr-array-init.cpp
Timm Bäder d1942855c4 [clang] Consider array filler in MaybeElementDependentArrayfiller()
Any InitListExpr may have an array filler and since we may be evaluating
the array filler as well, we need to take into account that the array
filler expression might make the InitListExpr element dependent.

Fixes https://github.com/llvm/llvm-project/issues/56016

Differential Revision: https://reviews.llvm.org/D131155
2022-08-05 06:47:49 +02:00

25 lines
444 B
C++

// RUN: %clang_cc1 -std=c++20 -verify %s
/// This test case used to crash in constant evaluation
/// because of the two-dimensional array with an array
/// filler expression.
/// expected-no-diagnostics
struct Foo {
int a;
constexpr Foo()
: a(get_int()) {
}
constexpr int get_int() const {
return 5;
}
};
static constexpr Foo bar[2][1] = {
{{}},
};
static_assert(bar[0][0].a == 5);
static_assert(bar[1][0].a == 5);