[PR c++/84426] ICE after conflicting member decl
commit6e6ee7a0d847c62305e7354837f907e19eee2be6
authornathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 27 Feb 2018 20:52:15 +0000 (27 20:52 +0000)
committernathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 27 Feb 2018 20:52:15 +0000 (27 20:52 +0000)
treed4a3fcaa4ea60a66ebc04d0669d289cb6662db27
parent141db77d3600f6792cfab77fd58fcd89e4778612
[PR c++/84426] ICE after conflicting member decl

https://gcc.gnu.org/ml/gcc-patches/2018-02/msg01529.html
PR c++/84426
* name-lookup.h (get_member_slot): Rename ...
(find_member_slot): ... here.
(add_member_slot): New.
* name-lookup.c (member_vec_linear_search): No need to check for
NULL slot.
(get_member_slot): Rename ...
(find_member_slot): ... here.  Don't add slot for incomplete class.
(add_member_slot): New.
* class.c (add_method): Adjust get_member_slot rename.  Bail out
if push_class_level_binding fails.  Create slot and grok
properties once we're committed to insertion.

PR c++/84426
* g++.dg/lookup/pr84426.C: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258042 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/cp/ChangeLog
gcc/cp/class.c
gcc/cp/name-lookup.c
gcc/cp/name-lookup.h
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/lookup/pr84426.C [new file with mode: 0644]