[PR c++/71965] silence multi-dim array init sorry without tf_error
authorAlexandre Oliva <aoliva@redhat.com>
Wed, 21 Mar 2018 22:08:34 +0000 (22:08 +0000)
committerAlexandre Oliva <aoliva@gcc.gnu.org>
Wed, 21 Mar 2018 22:08:34 +0000 (22:08 +0000)
commit0186f68450af9e0841f9e998609d351a5434a5b0
treef60a71035f6cc6f57530183d8c5f038998863e36
parent7446b353b56739bbba9a3e7852ebce8ffd19779b
[PR c++/71965] silence multi-dim array init sorry without tf_error

We shouldn't substitute templates into short-circuited-out concepts
constraints, but we do, and to add insult to injury, we issue a
sorry() error when a concept that shouldn't even have been substituted
attempts to perform a multi-dimensional array initialization with a
new{} expression.

Although fixing the requirements short-circuiting is probably too
risky at this point, we can get closer to the intended effect by
silencing that sorry just as we silence other errors.

for  gcc/cp/ChangeLog

PR c++/71965
* init.c (build_vec_init): Silence error, former sorry,
without tf_error.

for  gcc/testsuite/ChangeLog

PR c++/71965
* g++.dg/concepts/pr71965.C: New.

From-SVN: r258749
gcc/cp/ChangeLog
gcc/cp/init.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/concepts/pr71965.C [new file with mode: 0644]