Commit a4296998 by Nathan Sidwell Committed by Nathan Sidwell

[C++ PATCH] initializer_list diagnostic

https://gcc.gnu.org/ml/gcc-patches/2018-02/msg00434.html
	* class.c (finish_struct): Fix std:initializer_list diagnostic
	formatting.

	* g++.dg/cpp0x/initlist93.C: Adjust diagnostic.

From-SVN: r257496
parent 74e6f14a
2018-02-08 Nathan Sidwell <nathan@acm.org>
* class.c (finish_struct): Fix std:initializer_list diagnostic
formatting.
2018-02-08 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/83204
......
......@@ -7062,7 +7062,7 @@ finish_struct (tree t, tree attributes)
/* People keep complaining that the compiler crashes on an invalid
definition of initializer_list, so I guess we should explicitly
reject it. What the compiler internals care about is that it's a
template and has a pointer field followed by an integer field. */
template and has a pointer field followed by size_type field. */
bool ok = false;
if (processing_template_decl)
{
......@@ -7075,9 +7075,8 @@ finish_struct (tree t, tree attributes)
}
}
if (!ok)
fatal_error (input_location,
"definition of std::initializer_list does not match "
"#include <initializer_list>");
fatal_error (input_location, "definition of %qD does not match "
"%<#include <initializer_list>%>", TYPE_NAME (t));
}
input_location = saved_loc;
......
2018-02-08 Nathan Sidwell <nathan@acm.org>
* g++.dg/cpp0x/initlist93.C: Adjust diagnostic.
2018-02-08 Richard Sandiford <richard.sandiford@linaro.org>
PR tree-optimization/84265
......
......@@ -3,7 +3,7 @@
namespace std
{
template <class> class initializer_list // { dg-error "definition of std::initializer_list does not match" }
template <class> class initializer_list // { dg-error "definition of .*std::initializer_list.* does not match" }
{
int *_M_array;
int _M_len;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment