From: Georg-Johann Lay Date: Wed, 22 Feb 2012 14:13:48 +0000 (+0000) Subject: re PR target/18145 (Do not emit __do_copy_data or __do_clear_bss if .data or .bss... X-Git-Tag: releases/gcc-4.7.0~246 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=219db888b5adc949d931397a3fdabdfbd6fbfc62;p=thirdparty%2Fgcc.git re PR target/18145 (Do not emit __do_copy_data or __do_clear_bss if .data or .bss is empty.) PR target/18145 * config/avr/avr.c (avr_asm_output_aligned_decl_common): Skip setting avr_need_clear_bss_p for __gnu_lto* symbols. From-SVN: r184481 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 295ce0e14699..70b924b62f25 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +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. diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c index 9a285e3cdcee..d4cfaef0ca0e 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);