On Fri, Apr 05, 2019 at 10:45:59AM -0600, Martin Sebor wrote:
> The change committed yesterday to handle the C++ 2a string literals
> as non-type template arguments treats empty string initializers for
> trailing pointer array elements as zero. That's of course wrong
> because addresses of literals are non-zero.
That patch (r270155) also broke constexpr-63241.C:
constexpr-63241.C: In function ‘int main()’:
constexpr-63241.C:12:16: error: could not convert ‘<brace-enclosed initializer
list>()’ from ‘<brace-enclosed initializer list>’ to ‘A’
12 | {{0}, {0}}};
| ^
| |
| <brace-enclosed initializer list>
We have an initializer for a multidimensional array of A, and somehow the
truncating of the elements breaks it.
Marek