summaryrefslogtreecommitdiff
path: root/gcc/java
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/java')
-rw-r--r--gcc/java/ChangeLog6
-rw-r--r--gcc/java/jcf-write.c6
2 files changed, 10 insertions, 2 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index 23ebb806428..e9ddb8bc818 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,9 @@
+2005-01-20 Andrew Pinski <pinskia@gcc.gnu.org>
+
+ PR java/18091:
+ * jcf-write.c (perform_relocations): Don't call memcpy if source
+ and destination are the same.
+
2005-01-17 Tom Tromey <tromey@redhat.com>
* verify-impl.c (get_short): Sign extend.
diff --git a/gcc/java/jcf-write.c b/gcc/java/jcf-write.c
index 638f47baf85..8b6dc7de328 100644
--- a/gcc/java/jcf-write.c
+++ b/gcc/java/jcf-write.c
@@ -1,5 +1,5 @@
/* Write out a Java(TM) class file.
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
Free Software Foundation, Inc.
This file is part of GCC.
@@ -2794,7 +2794,9 @@ perform_relocations (struct jcf_partial *state)
int n = (old_ptr - old_buffer) - start;
new_ptr -= n;
old_ptr -= n;
- if (n > 0)
+ /* Don't "copy" bytes in place, this causes valgrind
+ warnings. */
+ if (n > 0 && new_ptr != old_ptr)
memcpy (new_ptr, old_ptr, n);
if (old_ptr == old_buffer)
break;