diff options
author | Julian Brown <julian@codesourcery.com> | 2005-04-13 15:24:03 +0000 |
---|---|---|
committer | Julian Brown <jules@gcc.gnu.org> | 2005-04-13 15:24:03 +0000 |
commit | e22a7bcf2604c5e0b29200530eaa090e787a249b (patch) | |
tree | eabd03b4a938ee28ef19ab97a08894ee5170b75d /gcc/java/decl.c | |
parent | 2c43a1491ea2aa3d42c4b90f67dd3c1aa2a3f490 (diff) | |
download | gcc-e22a7bcf2604c5e0b29200530eaa090e787a249b.zip gcc-e22a7bcf2604c5e0b29200530eaa090e787a249b.tar.gz gcc-e22a7bcf2604c5e0b29200530eaa090e787a249b.tar.bz2 |
elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK from being used for symbols with vague linkage when...
* gcc/config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
from being used for symbols with vague linkage when
HAVE_GAS_COMDAT_GROUP is true.
* gcc/java/decl.c (finish_method): Give methods once-only linkage.
From-SVN: r98089
Diffstat (limited to 'gcc/java/decl.c')
-rw-r--r-- | gcc/java/decl.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/java/decl.c b/gcc/java/decl.c index 197c391..168d30d 100644 --- a/gcc/java/decl.c +++ b/gcc/java/decl.c @@ -2057,6 +2057,13 @@ finish_method (tree fndecl) build2 (TRY_FINALLY_EXPR, void_type_node, *tp, exit)); } + /* Ensure non-abstract non-static non-private members are defined only once + when linking. This is an issue when using CNI to interface with C++ object + files. */ + if (! METHOD_STATIC (fndecl) && ! METHOD_PRIVATE (fndecl) + && ! METHOD_ABSTRACT (fndecl) && ! METHOD_FINAL (fndecl)) + make_decl_one_only (fndecl); + /* Prepend class initialization for static methods reachable from other classes. */ if (METHOD_STATIC (fndecl) |