[U-Boot] [PATCH] ARM: socfpga: fix duplicate const specifier warning

Marek Vasut marex at denx.de
Tue Sep 12 14:10:47 UTC 2017


On 09/12/2017 03:19 PM, Masahiro Yamada wrote:
> Hi Marek,
> 
> 
> 2017-09-12 19:23 GMT+09:00 Marek Vasut <marex at denx.de>:
>> On 09/12/2017 10:23 AM, Masahiro Yamada wrote:
>>> GCC 7.1 warns:
>>> duplicate ‘const’ declaration specifier [-Wduplicate-decl-specifier]
>>>
>>> Signed-off-by: Masahiro Yamada <yamada.masahiro at socionext.com>
>>> ---
>>>
>>>  arch/arm/mach-socfpga/misc_gen5.c | 2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/arch/arm/mach-socfpga/misc_gen5.c b/arch/arm/mach-socfpga/misc_gen5.c
>>> index 2f1da74..91ddb79 100644
>>> --- a/arch/arm/mach-socfpga/misc_gen5.c
>>> +++ b/arch/arm/mach-socfpga/misc_gen5.c
>>> @@ -144,7 +144,7 @@ static const struct {
>>                               ^ Shouldn't you fix it here instead ?
>>
>>>       const u16       pn;
>>>       const char      *name;
>>>       const char      *var;
>>> -} const socfpga_fpga_model[] = {
>>> +} socfpga_fpga_model[] = {
>>>       /* Cyclone V E */
>>>       { 0x2b15, "Cyclone V, E/A2", "cv_e_a2" },
>>>       { 0x2b05, "Cyclone V, E/A4", "cv_e_a4" },
>>>
>>
> 
> 
> 
> "const" and the variable type is interchangeable,
> so this comes down to a personal preference after all,
> but think about simpler cases.
> 
> 
> [1]
>     const int x = 1;
>     const struct pinctrl_ops *ops;
> 
> 
> [2]
>     int const x = 1;
>     struct pinctrl_ops const *ops;
> 
> 
> 
> Both [1] and [2] are correct and equivalent,
> but my preference is [1] (and I hope you too).
> 
> 
> In my experience in Linux / U-Boot,
> source code mostly looks like [1]
> (of course, [2] is mixed here and there)
> 
> 
> I prefer style [1] ("const" before variable type),
> so I removed the second "const" in this patch.
> 
> 
> 
> Ideally, the following might be more readable:
> 
> 
> struct fpga_model {
>         const u16       pn;
>         const char      *name;
>         const char      *var;
> };
> 
> static const struct fpga_model socfpga_fpga_model[] = {
>      ...
> };
> 
> 
> 
> But, I will not do
> 
> static struct fpga_model const socfpga_fpga_model[] = {
>      ...
> };

Doesn't the position of const in the example above indicate whether it's
a const applied to the whole array or const applied to it's elements ?

-- 
Best regards,
Marek Vasut


More information about the U-Boot mailing list