Denis Chertykov wrote:
> 2011/6/29 Georg-Johann Lay <[email protected]>:
>> Denis Chertykov wrote:
>>> 2011/6/28 Georg-Johann Lay <[email protected]>:
>>>> 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);
}