Hi, As a follow up of c++/14258, this one is about undiagnosed using declarations whose nested-name-specifier is not a base. The diagnostic was only emitted at instantiation time, whereas it could be emitted before. I just removed a test to perform the verification before instantiation, it seems to work. Tested x86_64-unknown-linux-gnu, OK to commit ?
gcc/testsuite/ChangeLog 2011-12-20 Fabien Chêne <fab...@gcc.gnu.org> PR c++/23211 * g++.dg/template/using18.C: New. * g++.dg/template/nested3.C: Remove dg-message on the instantiation. * g++.dg/template/crash13.C: Likewise. gcc/cp/ChangeLog 2011-12-20 Fabien Chêne <fab...@gcc.gnu.org> PR c++/23211 * name-lookup.c (do_class_using_decl): Check that the nested-name-specifier of a class-scope using declaration refers to a base class, even if the current scope is dependent. * parser.c (cp_parser_using_declaration): Set USING_DECL_TYPENAME_P to 1 if the DECL is not null. Re-indent a 'else' close to the prior modification. -- Fabien
23211.patch
Description: Binary data