]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/18145 (Do not emit __do_copy_data or __do_clear_bss if .data or .bss...
authorGeorg-Johann Lay <avr@gjlay.de>
Wed, 22 Feb 2012 14:13:48 +0000 (14:13 +0000)
committerGeorg-Johann Lay <gjl@gcc.gnu.org>
Wed, 22 Feb 2012 14:13:48 +0000 (14:13 +0000)
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

gcc/ChangeLog
gcc/config/avr/avr.c

index 295ce0e14699912998903b3d442a2a9d6ff3013f..70b924b62f259fcc79bdad3f4cffae33355ce3b2 100644 (file)
@@ -1,3 +1,9 @@
+2012-02-22  Georg-Johann Lay  <avr@gjlay.de>
+
+       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  <avr@gjlay.de>
 
        * config/avr/avr.h (avr_accumulate_outgoing_args): Return int.
index 9a285e3cdceeb2c236d6728240942ef75bd84cba..d4cfaef0ca0e303c684f9f11bac030a315cb9bcc 100644 (file)
@@ -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);