[U-Boot] [PATCH] ARM: socfpga: fix duplicate const specifier warning
Masahiro Yamada
yamada.masahiro at socionext.com
Tue Sep 12 16:52:44 UTC 2017
2017-09-12 23:10 GMT+09:00 Marek Vasut <marex at denx.de>:
> 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 ?
>
Sorry, I could not get what you mean.
Could you explain it in detail, please?
--
Best Regards
Masahiro Yamada
More information about the U-Boot
mailing list