aboutsummaryrefslogtreecommitdiff
path: root/gcc/java
diff options
context:
space:
mode:
authorJoern Rennecke <amylaar@spamcop.net>2010-11-06 15:04:52 +0000
committerJoern Rennecke <amylaar@gcc.gnu.org>2010-11-06 15:04:52 +0000
commit4ee3b0139f8dd732d6f0cf9571e86cd0ce3740a0 (patch)
treeb56460ca5534a7fdbf2c285dcfdd238b028c3201 /gcc/java
parenta9625a91d2cd2ef2cc6d82f6ace9be5199745fdf (diff)
downloadgcc-4ee3b0139f8dd732d6f0cf9571e86cd0ce3740a0.zip
gcc-4ee3b0139f8dd732d6f0cf9571e86cd0ce3740a0.tar.gz
gcc-4ee3b0139f8dd732d6f0cf9571e86cd0ce3740a0.tar.bz2
re PR middle-end/46314 (frontends use ASM_GENERATE_INTERNAL_LABEL)
PR middle-end/46314 gcc: * target.def (generate_internal_label): New asm_out hook. * output.h (default_generate_internal_label): Declare. * varasm.c (default_generate_internal_label): Define. gcc/cp: * method.c (make_alias_for_thunk): Use targetm.asm_out.generate_internal_label. gcc/java: * class.c: Include target.h. (make_local_function_alias): Use targetm.asm_out.generate_internal_label. * expr.c (lookup_label, generate_name): Likewise. From-SVN: r166404
Diffstat (limited to 'gcc/java')
-rw-r--r--gcc/java/ChangeLog8
-rw-r--r--gcc/java/class.c3
-rw-r--r--gcc/java/expr.c5
3 files changed, 13 insertions, 3 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index ae89444..4b97677 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,11 @@
+2010-11-06 Joern Rennecke <amylaar@spamcop.net>
+
+ PR middle-end/46314
+ * class.c: Include target.h.
+ (make_local_function_alias):
+ Use targetm.asm_out.generate_internal_label.
+ * expr.c (lookup_label, generate_name): Likewise.
+
2010-11-03 Joern Rennecke <joern.rennecke@embecosm.com>
PR bootstrap/44335
diff --git a/gcc/java/class.c b/gcc/java/class.c
index ece261b..a1dc9c0 100644
--- a/gcc/java/class.c
+++ b/gcc/java/class.c
@@ -43,6 +43,7 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */
#include "tree-iterator.h"
#include "vecprim.h"
#include "tm.h" /* FIXME: For gcc_obstack_init from defaults.h. */
+#include "target.h"
/* DOS brain-damage */
#ifndef O_BINARY
@@ -1399,7 +1400,7 @@ make_local_function_alias (tree method)
*name = 'L';
strcpy (name + 1, method_name);
- ASM_GENERATE_INTERNAL_LABEL (buf, name, alias_labelno++);
+ targetm.asm_out.generate_internal_label (buf, name, alias_labelno++);
alias = build_decl (input_location,
FUNCTION_DECL, get_identifier (buf),
TREE_TYPE (method));
diff --git a/gcc/java/expr.c b/gcc/java/expr.c
index 9f9667f..85cf1a2 100644
--- a/gcc/java/expr.c
+++ b/gcc/java/expr.c
@@ -1763,7 +1763,8 @@ lookup_label (int pc)
char buf[32];
if (pc > highest_label_pc_this_method)
highest_label_pc_this_method = pc;
- ASM_GENERATE_INTERNAL_LABEL(buf, "LJpc=", start_label_pc_this_method + pc);
+ targetm.asm_out.generate_internal_label (buf, "LJpc=",
+ start_label_pc_this_method + pc);
name = get_identifier (buf);
if (IDENTIFIER_LOCAL_VALUE (name))
return IDENTIFIER_LOCAL_VALUE (name);
@@ -1783,7 +1784,7 @@ generate_name (void)
{
static int l_number = 0;
char buff [32];
- ASM_GENERATE_INTERNAL_LABEL(buff, "LJv", l_number);
+ targetm.asm_out.generate_internal_label (buff, "LJv", l_number);
l_number++;
return get_identifier (buff);
}