diff options
author | loewis <loewis@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-01-01 13:29:44 +0000 |
---|---|---|
committer | loewis <loewis@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-01-01 13:29:44 +0000 |
commit | 418a2bbe9796007cfed5e00f26b757a9dd48d0bc (patch) | |
tree | 71fc1f2a912ec4b7ef65e2eb96f51e6a4ba92aa5 /gcc | |
parent | 40bf2bd4f795b68e617a3ce464c7fe2960eb0021 (diff) | |
download | ppe42-gcc-418a2bbe9796007cfed5e00f26b757a9dd48d0bc.tar.gz ppe42-gcc-418a2bbe9796007cfed5e00f26b757a9dd48d0bc.zip |
* call.c (build_new_method_call): Also check destructors.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@31157 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/cp/call.c | 10 |
2 files changed, 11 insertions, 3 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 3fb56b09bd6..630a1fa34db 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,7 @@ +1999-01-01 Martin v. Löwis <loewis@informatik.hu-berlin.de> + + * call.c (build_new_method_call): Also check destructors. + 1999-12-31 Mark Mitchell <mark@codesourcery.com> * cp-tree.h (VF_NORMAL_VALUE): Remove. diff --git a/gcc/cp/call.c b/gcc/cp/call.c index fd5cfeecb35..596cc325309 100644 --- a/gcc/cp/call.c +++ b/gcc/cp/call.c @@ -1,5 +1,5 @@ /* Functions related to invoking methods and overloaded functions. - Copyright (C) 1987, 92-97, 1998, 1999 Free Software Foundation, Inc. + Copyright (C) 1987, 92-99, 2000 Free Software Foundation, Inc. Contributed by Michael Tiemann (tiemann@cygnus.com) and modified by Brendan Kehoe (brendan@cygnus.com). @@ -4321,10 +4321,14 @@ build_new_method_call (instance, name, args, basetype_path, flags) if (DECL_PURE_VIRTUAL_P (cand->fn) && instance == current_class_ref - && DECL_CONSTRUCTOR_P (current_function_decl) + && (DECL_CONSTRUCTOR_P (current_function_decl) + || DECL_DESTRUCTOR_P (current_function_decl)) && ! (flags & LOOKUP_NONVIRTUAL) && value_member (cand->fn, CLASSTYPE_PURE_VIRTUALS (basetype))) - cp_error ("abstract virtual `%#D' called from constructor", cand->fn); + cp_error ((DECL_CONSTRUCTOR_P (current_function_decl) ? + "abstract virtual `%#D' called from constructor" + : "abstract virtual `%#D' called from destructor"), + cand->fn); if (TREE_CODE (TREE_TYPE (cand->fn)) == METHOD_TYPE && is_dummy_object (instance_ptr)) { |