From 5be63f82f3cf883476a3d84129f8988d622b0aa2 Mon Sep 17 00:00:00 2001 From: gjl Date: Wed, 22 Feb 2012 14:13:48 +0000 Subject: [PATCH] PR target/18145 * config/avr/avr.c (avr_asm_output_aligned_decl_common): Skip setting avr_need_clear_bss_p for __gnu_lto* symbols. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184481 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 6 ++++++ gcc/config/avr/avr.c | 6 +++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 295ce0e1469..70b924b62f2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2012-02-22 Georg-Johann Lay + PR target/18145 + * config/avr/avr.c (avr_asm_output_aligned_decl_common): Skip + setting avr_need_clear_bss_p for __gnu_lto* symbols. + +2012-02-22 Georg-Johann Lay + * config/avr/avr.h (avr_accumulate_outgoing_args): Return int. * config/avr/avr.c (avr_accumulate_outgoing_args): Return int. diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c index 9a285e3cdce..d4cfaef0ca0 100644 --- a/gcc/config/avr/avr.c +++ b/gcc/config/avr/avr.c @@ -7245,7 +7245,11 @@ avr_asm_output_aligned_decl_common (FILE * stream, unsigned HOST_WIDE_INT size, unsigned int align, bool local_p) { - avr_need_clear_bss_p = true; + /* __gnu_lto_v1 etc. are just markers for the linker injected by toplev.c. + There is no need to trigger __do_clear_bss code for them. */ + + if (!STR_PREFIX_P (name, "__gnu_lto")) + avr_need_clear_bss_p = true; if (local_p) ASM_OUTPUT_ALIGNED_LOCAL (stream, name, size, align); -- 2.11.4.GIT