Add test case that was broken by r311970.

See also discussion here:
https://reviews.llvm.org/rL301963

As far as I can tell, this discussion was never resolved.

llvm-svn: 312109
This commit is contained in:
Martin Bohme 2017-08-30 10:44:51 +00:00
parent 542c84b2a1
commit 1a7c369e08
1 changed files with 16 additions and 0 deletions

View File

@ -604,6 +604,22 @@ static_assert(NATDCArray{}[1][1].n == 0, "");
}
// Tests for indexes into arrays of unknown bounds.
namespace ArrayOfUnknownBound {
// This is a corner case of the language where it's not clear whether this
// should be an error: When we see the initializer for Z::a, the bounds of
// Z::b aren't known yet, but they will be known by the end of the translation
// unit, so the compiler can in theory check the indexing into Z::b.
// For the time being, as long as this is unclear, we want to make sure that
// this compiles.
struct Z {
static const void *const a[];
static const void *const b[];
};
constexpr const void *Z::a[] = {&b[0], &b[1]};
constexpr const void *Z::b[] = {&a[0], &a[1]};
}
namespace DependentValues {
struct I { int n; typedef I V[10]; };