aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2003-07-28 23:59:30 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2003-07-28 21:59:30 +0000
commit58579435ee7287aa28ec4185aba3213182c7bb1e (patch)
tree6fd063fd71e5a82dc0e6827c7ad3ed11f1af2b96 /gcc
parentb736595713974eff2b013c37de2e27b80d77474d (diff)
downloadgcc-58579435ee7287aa28ec4185aba3213182c7bb1e.zip
gcc-58579435ee7287aa28ec4185aba3213182c7bb1e.tar.gz
gcc-58579435ee7287aa28ec4185aba3213182c7bb1e.tar.bz2
decl2.c (mark_member_pointers): Verify that member pointer points to the function.
* decl2.c (mark_member_pointers): Verify that member pointer points to the function. From-SVN: r69902
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/decl2.c3
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 1ca6304..abbe9cc 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+Mon Jul 28 23:55:10 CEST 2003 Jan Hubicka <jh@suse.cz>
+
+ * decl2.c (mark_member_pointers): Verify that member pointer points to
+ the function.
+
2003-07-28 Nathan Sidwell <nathan@codesourcery.com>
* cp-tree.h (begin_compound_stmt): No scope arg is a bool.
diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c
index a9f8fa8..4a6e78d 100644
--- a/gcc/cp/decl2.c
+++ b/gcc/cp/decl2.c
@@ -2594,7 +2594,8 @@ static tree
mark_member_pointers (tree *tp, int *walk_subtrees ATTRIBUTE_UNUSED,
void *data ATTRIBUTE_UNUSED)
{
- if (TREE_CODE (*tp) == PTRMEM_CST)
+ if (TREE_CODE (*tp) == PTRMEM_CST
+ && TYPE_PTRMEMFUNC_P (TREE_TYPE (*tp)))
cgraph_mark_needed_node (cgraph_node (PTRMEM_CST_MEMBER (*tp)), 1);
return 0;
}