Author: mboehme Date: Wed Aug 30 03:44:51 2017 New Revision: 312109 URL: http://llvm.org/viewvc/llvm-project?rev=312109&view=rev Log: 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. Modified: cfe/trunk/test/SemaCXX/constant-expression-cxx11.cpp Modified: cfe/trunk/test/SemaCXX/constant-expression-cxx11.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/constant-expression-cxx11.cpp?rev=312109&r1=312108&r2=312109&view=diff ============================================================================== --- cfe/trunk/test/SemaCXX/constant-expression-cxx11.cpp (original) +++ cfe/trunk/test/SemaCXX/constant-expression-cxx11.cpp Wed Aug 30 03:44:51 2017 @@ -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]; }; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits