diff options
author | Giovanni Bajo <giovannibajo@gcc.gnu.org> | 2004-07-12 10:07:30 +0000 |
---|---|---|
committer | Giovanni Bajo <giovannibajo@gcc.gnu.org> | 2004-07-12 10:07:30 +0000 |
commit | 7fb213d8e955ed3f21defe0d28ab63fe576574bd (patch) | |
tree | ddb750a9ae79ad0985920a74ed9e30cdf7fa664a /gcc/cp/ChangeLog | |
parent | b55e3aad633bd6e8de2b41b1a6ce41e5241878ac (diff) | |
download | gcc-7fb213d8e955ed3f21defe0d28ab63fe576574bd.zip gcc-7fb213d8e955ed3f21defe0d28ab63fe576574bd.tar.gz gcc-7fb213d8e955ed3f21defe0d28ab63fe576574bd.tar.bz2 |
re PR c++/2204 (G++ doesn't check (member) function parameter for abstract-ness.)
PR c++/2204
* config-lang.in (gtfiles): Add typeck2.c.
* Make-lang.in: Tweak typeck2.c dependencies, and add rule for
gt-cp-typeck2.h.
* cp-tree.h: Declare complete_type_check_abstract.
* typeck2.c (pat_calc_hash, pat_compare,
complete_type_check_abstract): New functions.
(abstract_virtuals_error): If the type is abstract, register the
declaration within abstract_pending_vars for further checks.
Inspect also dependent types. Handle IDENTIFIER_NODEs as decl.
* decl.c (cp_finish_decl): Do not strip array types.
(create_array_type_for_decl): Check for abstractness of the element
type.
(complete_vars): Call complete_type_check_abstract.
* class.c (finish_struct): Prepare a list of virtual functions for
template types, and call complete_vars on it to check for abstractness.
PR c++/2204
* g++.dg/other/abstract2.C: New test.
From-SVN: r84552
Diffstat (limited to 'gcc/cp/ChangeLog')
-rw-r--r-- | gcc/cp/ChangeLog | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 099b1bb..4b80aa6 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,22 @@ +2004-07-12 Giovanni Bajo <giovannibajo@gcc.gnu.org> + + PR c++/2204 + * config-lang.in (gtfiles): Add typeck2.c. + * Make-lang.in: Tweak typeck2.c dependencies, and add rule for + gt-cp-typeck2.h. + * cp-tree.h: Declare complete_type_check_abstract. + * typeck2.c (pat_calc_hash, pat_compare, + complete_type_check_abstract): New functions. + (abstract_virtuals_error): If the type is abstract, register the + declaration within abstract_pending_vars for further checks. + Inspect also dependent types. Handle IDENTIFIER_NODEs as decl. + * decl.c (cp_finish_decl): Do not strip array types. + (create_array_type_for_decl): Check for abstractness of the element + type. + (complete_vars): Call complete_type_check_abstract. + * class.c (finish_struct): Prepare a list of virtual functions for + template types, and call complete_vars on it to check for abstractness. + 2004-07-12 Paolo Bonzini <bonzini@gnu.org> PR tree-optimization/14107 |