diff options
author | Nathan Sidwell <nathan@acm.org> | 2018-02-08 16:11:39 +0000 |
---|---|---|
committer | Nathan Sidwell <nathan@gcc.gnu.org> | 2018-02-08 16:11:39 +0000 |
commit | a4296998322d3bb3b53c7412715cc2169f1d4f61 (patch) | |
tree | 879d9d62daee4c26656b7dd92f6c37b9b9b5bff0 /gcc | |
parent | 74e6f14adb7057b29d361cc35c76f16663d1e649 (diff) | |
download | gcc-a4296998322d3bb3b53c7412715cc2169f1d4f61.zip gcc-a4296998322d3bb3b53c7412715cc2169f1d4f61.tar.gz gcc-a4296998322d3bb3b53c7412715cc2169f1d4f61.tar.bz2 |
[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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/class.c | 7 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/initlist93.C | 2 |
4 files changed, 13 insertions, 5 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index b898ba1..2fc35d2 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +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 diff --git a/gcc/cp/class.c b/gcc/cp/class.c index 4417020..e48a04a 100644 --- a/gcc/cp/class.c +++ b/gcc/cp/class.c @@ -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; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index e989c94..6d45195 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +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 diff --git a/gcc/testsuite/g++.dg/cpp0x/initlist93.C b/gcc/testsuite/g++.dg/cpp0x/initlist93.C index 84a4738..7a0b021 100644 --- a/gcc/testsuite/g++.dg/cpp0x/initlist93.C +++ b/gcc/testsuite/g++.dg/cpp0x/initlist93.C @@ -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; |