diff options
author | Paolo Carlini <paolo.carlini@oracle.com> | 2017-03-21 10:18:51 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2017-03-21 10:18:51 +0000 |
commit | d3e19c2c97facd63a5ae71a164b89a913beecf18 (patch) | |
tree | db3f380de30ffdfd1aa7daf16a7f82be7750a17a /gcc/cp | |
parent | 3ed67fbf3d21c3d81f9d3107b1e07f970c9fac01 (diff) | |
download | gcc-d3e19c2c97facd63a5ae71a164b89a913beecf18.tar.gz |
re PR c++/77752 (ICE on C++ code on x86_64-linux-gnu (internal compiler error: Segmentation fault, build_list_conv, implicit_conversion))
/cp
2017-03-21 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/77752
* name-lookup.c (pushtag_1): Add check for bogus, non template,
std::initializer_list.
/testsuite
2017-03-21 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/77752
* g++.dg/cpp0x/initlist97.C: New.
* g++.dg/cpp0x/initlist85.C: Update.
From-SVN: r246310
Diffstat (limited to 'gcc/cp')
-rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/name-lookup.c | 9 |
2 files changed, 15 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 20eaf630224..3db9895d5a8 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2017-03-21 Paolo Carlini <paolo.carlini@oracle.com> + + PR c++/77752 + * name-lookup.c (pushtag_1): Add check for bogus, non template, + std::initializer_list. + 2017-03-21 Jakub Jelinek <jakub@redhat.com> PR c++/35878 diff --git a/gcc/cp/name-lookup.c b/gcc/cp/name-lookup.c index 994f7f0c5c3..4d7d3a1bad4 100644 --- a/gcc/cp/name-lookup.c +++ b/gcc/cp/name-lookup.c @@ -6207,6 +6207,15 @@ pushtag_1 (tree name, tree type, tag_scope scope) decl = pushdecl_with_scope_1 (decl, b, /*is_friend=*/false); if (decl == error_mark_node) return decl; + + if (DECL_CONTEXT (decl) == std_node + && strcmp (TYPE_NAME_STRING (type), "initializer_list") == 0 + && !CLASSTYPE_TEMPLATE_INFO (type)) + { + error ("declaration of std::initializer_list does not match " + "#include <initializer_list>, isn't a template"); + return error_mark_node; + } } if (! in_class) |