]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/cp/class.c
re PR c++/19497 (Invalid declaration in template diagnosed too late)
authorNathan Sidwell <nathan@codesourcery.com>
Wed, 8 Jun 2005 11:49:23 +0000 (11:49 +0000)
committerNathan Sidwell <nathan@gcc.gnu.org>
Wed, 8 Jun 2005 11:49:23 +0000 (11:49 +0000)
commit98ed9dae3ad020898a04cbf7363d51647b441ad6
tree33d1230b127cd93152bb163e84c576691088bbac
parentcb6d4a9fce89e5bea9476338870125bac9b83e96
re PR c++/19497 (Invalid declaration in template diagnosed too late)

cp:
PR c++/19497
* cp-tree.def (USING_DECL): Update documentation.
* cp-tree.h (DECL_DEPENDENT_P): New.
(USING_DECL_DECLS, USING_DECL_SCOPE): New.
* class.c (handle_using_decl): Move most of the processing to ...
* name-lookup.c (do_class_using_decl): ... here.  Make stricter.
(push_using_decl): Use USING_DECL_SCOPE.
(cp_emit_debug_info_for_using): Make extern.
* cxx-pretty-print.c (pp_cxx_statement) <USING_DECL case>: Adjust.
* name-lookup.h (cp_emit_debug_info_for_using): Declare.
* pt.c (tsubst_decl) <USING_DECL case>: Use do_class_using_decl
when tsubsting.
(tsubst_expr): Use USING_DECL_SCOPE.
* search.c (lookup_field_1): Use DECL_DEPENDENT_P.
* semantics.c (finish_member_declaration): Likewise.
testsuite:
PR c++/19497
* g++.dg/inherit/using5.C: New.
* g++.dg/inherit/using6.C: New.

From-SVN: r100757
13 files changed:
gcc/cp/ChangeLog
gcc/cp/class.c
gcc/cp/cp-tree.def
gcc/cp/cp-tree.h
gcc/cp/cxx-pretty-print.c
gcc/cp/name-lookup.c
gcc/cp/name-lookup.h
gcc/cp/pt.c
gcc/cp/search.c
gcc/cp/semantics.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/inherit/using5.C [new file with mode: 0644]
gcc/testsuite/g++.dg/inherit/using6.C [new file with mode: 0644]