From 2f435bed985ce8b9d3c7bc02a8ae392b61c9b8bd Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Thu, 25 Mar 1999 19:45:25 +0000 Subject: [PATCH] * decl2.c (comdat_linkage): Treat vtables like functions. From-SVN: r25985 --- gcc/cp/ChangeLog | 4 ++++ gcc/cp/decl2.c | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index b6bff825ff7..187378eccf7 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,7 @@ +1999-03-25 Jason Merrill + + * decl2.c (comdat_linkage): Treat vtables like functions. + 1999-03-25 Mark Mitchell * pt.c (tsubst_decl): Tsubst into DECL_BEFRIENDING_CLASSES. diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c index 8adf5f95df9..a7cac3e9b63 100644 --- a/gcc/cp/decl2.c +++ b/gcc/cp/decl2.c @@ -2370,10 +2370,14 @@ comdat_linkage (decl) { if (flag_weak) make_decl_one_only (decl); - else if (TREE_CODE (decl) == FUNCTION_DECL) + else if (TREE_CODE (decl) == FUNCTION_DECL || DECL_VIRTUAL_P (decl)) + /* We can just emit functions and vtables statically; it doesn't really + matter if we have multiple copies. */ TREE_PUBLIC (decl) = 0; else { + /* Static data member template instantiations, however, cannot + have multiple copies. */ if (DECL_INITIAL (decl) == 0 || DECL_INITIAL (decl) == error_mark_node) DECL_COMMON (decl) = 1; -- 2.30.2