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);
 }


Reply via email to