aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Michalkiewicz <marekm@amelek.gda.pl>2005-03-20 22:12:08 +0100
committerMarek Michalkiewicz <marekm@gcc.gnu.org>2005-03-20 21:12:08 +0000
commit82b3eb42941c7a037182cec37b014a7574e46340 (patch)
treef1bacfc7c64a2374c138179f80d0120a7750f600
parente7108df9b95aeab82d1f9659f93ceea5e1fd3fff (diff)
downloadgcc-82b3eb42941c7a037182cec37b014a7574e46340.zip
gcc-82b3eb42941c7a037182cec37b014a7574e46340.tar.gz
gcc-82b3eb42941c7a037182cec37b014a7574e46340.tar.bz2
re PR target/18551 (wrong asm output for -mcall-prologues with g++)
PR target/18551 * config/avr/avr.c (avr_output_function_prologue): Do not use current_function_name() in a label, use a local label instead. From-SVN: r96765
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/avr/avr.c8
2 files changed, 9 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 258526b..e2d494c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2005-03-20 Marek Michalkiewicz <marekm@amelek.gda.pl>
+
+ PR target/18551
+ * config/avr/avr.c (avr_output_function_prologue): Do not use
+ current_function_name() in a label, use a local label instead.
+
2005-03-20 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.c (rs6000_generate_compare): Test
diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c
index 4d1a9ce..0f8f803 100644
--- a/gcc/config/avr/avr.c
+++ b/gcc/config/avr/avr.c
@@ -704,14 +704,12 @@ avr_output_function_prologue (FILE *file, HOST_WIDE_INT size)
}
else if (minimize && (frame_pointer_needed || live_seq > 6))
{
- const char *cfun_name = current_function_name ();
fprintf (file, ("\t"
AS1 (ldi, r26) ",lo8(" HOST_WIDE_INT_PRINT_DEC ")" CR_TAB
AS1 (ldi, r27) ",hi8(" HOST_WIDE_INT_PRINT_DEC ")" CR_TAB), size, size);
- fprintf (file, (AS2 (ldi, r30, pm_lo8(.L_%s_body)) CR_TAB
- AS2 (ldi, r31, pm_hi8(.L_%s_body)) CR_TAB),
- cfun_name, cfun_name);
+ fputs ((AS2 (ldi,r30,pm_lo8(1f)) CR_TAB
+ AS2 (ldi,r31,pm_hi8(1f)) CR_TAB), file);
prologue_size += 4;
@@ -727,7 +725,7 @@ avr_output_function_prologue (FILE *file, HOST_WIDE_INT size)
(18 - live_seq) * 2);
++prologue_size;
}
- fprintf (file, ".L_%s_body:\n", cfun_name);
+ fputs ("1:\n", file);
}
else
{