Denis Chertykov wrote: > 2011/6/29 Georg-Johann Lay <a...@gjlay.de>: >> Denis Chertykov wrote: >>> 2011/6/28 Georg-Johann Lay <a...@gjlay.de>: >>>> http://gcc.gnu.org/ml/gcc-patches/2011-06/msg01462.html >>>> >>>> Georg-Johann Lay wrote: >>>>> PR34734 produces annoying, false warnings if __attribute__((progmem)) >>>>> is used in conjunction with C++. DECL_INITIAL is not yet set up in >>>>> avr_handle_progmem_attribute. >>>>> >>>>> Johann >>>>> >>>>> PR target/34734 >>>>> * config/avr/avr.c (avr_handle_progmem_attribute): Move warning >>>>> about uninitialized data attributed 'progmem' from here... >>>>> (avr_encode_section_info): ...to this new function. >>>>> (TARGET_ENCODE_SECTION_INFO): New define. >>>>> (avr_section_type_flags): For data in ".progmem.data", remove >>>>> section flag SECTION_WRITE. >>>> avr_encode_section_info is good place to emit the warning: >>>> DECL_INITIAL has stabilized for C++, the warning will appear even for >>>> unused variables that will eventually be thrown away, and the warning >>>> appears only once (new_decl_p). >>> Approved. >>> >>> Denis. >> Is this a patch that should be backported? >> 4.6? >> 4.5? >> >> It's not fix for "bug or doc" but very annoying, false warning. > > You can backport it if you want. > > I'm usually didn't backport such patches. > > Denis.
Ok, maybe Eric or Anatoly have some preference for 4.5/4.6. Applied to 4.7 together with following corrigendum: Index: config/avr/avr.c =================================================================== --- config/avr/avr.c (revision 175628) +++ config/avr/avr.c (working copy) @@ -5161,7 +5161,7 @@ avr_section_type_flags (tree decl, const /* Implement `TARGET_ENCODE_SECTION_INFO'. */ static void -avr_encode_section_info (tree decl, rtx rtl ATTRIBUTE_UNUSED, +avr_encode_section_info (tree decl, rtx rtl, int new_decl_p) { /* In avr_handle_progmem_attribute, DECL_INITIAL is not yet @@ -5177,6 +5177,8 @@ avr_encode_section_info (tree decl, rtx "uninitialized variable %q+D put into " "program memory area", decl); } + + default_encode_section_info (decl, rtl, new_decl_p); }