diff options
author | Georg-Johann Lay <avr@gjlay.de> | 2012-02-22 14:13:48 +0000 |
---|---|---|
committer | Georg-Johann Lay <gjl@gcc.gnu.org> | 2012-02-22 14:13:48 +0000 |
commit | 219db888b5adc949d931397a3fdabdfbd6fbfc62 (patch) | |
tree | 7079b1bdd77223f651aadcd799c66fb3bcbd4263 /gcc | |
parent | 9aa04cc733440f0b9d1511d0453e38351546141b (diff) | |
download | gcc-219db888b5adc949d931397a3fdabdfbd6fbfc62.zip gcc-219db888b5adc949d931397a3fdabdfbd6fbfc62.tar.gz gcc-219db888b5adc949d931397a3fdabdfbd6fbfc62.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/avr/avr.c | 6 |
2 files changed, 11 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 295ce0e..70b924b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 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. * 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 9a285e3..d4cfaef 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); |