summaryrefslogtreecommitdiff
path: root/gcc/cp/class.c
diff options
context:
space:
mode:
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2005-04-24 22:06:37 +0000
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2005-04-24 22:06:37 +0000
commit880afb804d8c8dd903dacb8c3e1383a80eba225c (patch)
treeceb41f874d3b1e3d612a3d2785020f503973c21a /gcc/cp/class.c
parent37f365e40bb5019ddbc2feb1828501587dc6b43b (diff)
downloadgcc-880afb804d8c8dd903dacb8c3e1383a80eba225c.tar.gz
PR middle-end/20991
* cgraph.h (cgraph_local_info): Add vtable_method field. * varasm.c (mark_decl_referenced): If cgraph_global_info_ready and node is vtable_method, finalized and not reachable, don't do anything. * class.c: Include cgraph.h. (cp_fold_obj_type_ref): Set node->local.vtable_method. * Make-lang.in (cgraph.o): Depend on $(CGRAPH_H). * g++.dg/opt/pr20991.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@98674 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp/class.c')
-rw-r--r--gcc/cp/class.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/cp/class.c b/gcc/cp/class.c
index 6423fbcf894..5052aaaf6b0 100644
--- a/gcc/cp/class.c
+++ b/gcc/cp/class.c
@@ -35,6 +35,7 @@ Boston, MA 02111-1307, USA. */
#include "toplev.h"
#include "target.h"
#include "convert.h"
+#include "cgraph.h"
/* The number of nested classes being processed. If we are not in the
scope of any class, this is zero. */
@@ -7719,6 +7720,8 @@ cp_fold_obj_type_ref (tree ref, tree known_type)
DECL_VINDEX (fndecl)));
#endif
+ cgraph_node (fndecl)->local.vtable_method = true;
+
return build_address (fndecl);
}