[PATCH] ARM: ks8695: fix __initdata annotation

Arnd Bergmann arnd at arndb.de
Tue Feb 9 07:10:21 PST 2016


On Tuesday 09 February 2016 12:36:24 Uwe Kleine-König wrote:
> Having the attribute list after the declarator isn't recommended as
> explicit as I remember having read it somewhere in the gcc docs.
> 
>         info gcc "Attribute Syntax"
> 
> has:
> 
>          An attribute specifier list may appear immediately before a declarator
>         (other than the first) in a comma-separated list of declarators in a
>         declaration of more than one identifier using a single list of
>         specifiers and qualifiers.  Such attribute specifiers apply only to the
>         identifier before whose declarator they appear.  For example, in
> 
>              __attribute__((noreturn)) void d0 (void),
>                  __attribute__((format(printf, 1, 2))) d1 (const char *, ...),
>                   d2 (void)
> 
>         the 'noreturn' attribute applies to all the functions declared; the
>         'format' attribute only applies to 'd1'.
> 
> (Funny enough, in the example the attribute specifier list doesn't
> appear *immediately* before the declarator d0.)
> 
> This might be interpreted as "usually the attribute specifier list appears
> after the declarator". Other than that I cannot find an explict
> recommended placement in the docs. The examples in
> 
>         info gcc "Variable Attributes"
> 
> always have the attribute list after the declarator.

Ok, thanks for the detailed answer, I've fixed it up locally now.
I guess I'm applying the patch in arm-soc directly at some point
and will use the line you suggested after some more testing:

 static struct map_desc og_io_desc[] __initdata = {


	Arnd



More information about the linux-arm-kernel mailing list