Message ID | 1396632265-16124-1-git-send-email-emilio@elopez.com.ar (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 04/04/2014 10:24 AM, Emilio López wrote: > When compiling sunxi_defconfig while using C=2, the following error > causes the compilation to fail: > > drivers/watchdog/sunxi_wdt.c:60:15: error: constant 0b0001 is not a valid number > > Fix it by using hex notation instead of the non-standard binary one > What defines "non-standard" here ? Isn't this a sparse problem that should possibly be fixed in sparse instead ? [ I don't mind changing it as the 0bXXXX notation doesn't seem to be used much in the kernel, but we should not claim something to be non-standard if it is just not widely used. As normal compilation doesn't seem to have a problem, we should be sure that it is non-standard if we claim it to be non-standard. ] Thanks, Guenter > Signed-off-by: Emilio López <emilio@elopez.com.ar> > --- > drivers/watchdog/sunxi_wdt.c | 22 +++++++++++----------- > 1 file changed, 11 insertions(+), 11 deletions(-) > > diff --git a/drivers/watchdog/sunxi_wdt.c b/drivers/watchdog/sunxi_wdt.c > index cd00a78..693b9d2 100644 > --- a/drivers/watchdog/sunxi_wdt.c > +++ b/drivers/watchdog/sunxi_wdt.c > @@ -57,17 +57,17 @@ struct sunxi_wdt_dev { > */ > > static const int wdt_timeout_map[] = { > - [1] = 0b0001, /* 1s */ > - [2] = 0b0010, /* 2s */ > - [3] = 0b0011, /* 3s */ > - [4] = 0b0100, /* 4s */ > - [5] = 0b0101, /* 5s */ > - [6] = 0b0110, /* 6s */ > - [8] = 0b0111, /* 8s */ > - [10] = 0b1000, /* 10s */ > - [12] = 0b1001, /* 12s */ > - [14] = 0b1010, /* 14s */ > - [16] = 0b1011, /* 16s */ > + [1] = 0x1, /* 1s */ > + [2] = 0x2, /* 2s */ > + [3] = 0x3, /* 3s */ > + [4] = 0x4, /* 4s */ > + [5] = 0x5, /* 5s */ > + [6] = 0x6, /* 6s */ > + [8] = 0x7, /* 8s */ > + [10] = 0x8, /* 10s */ > + [12] = 0x9, /* 12s */ > + [14] = 0xA, /* 14s */ > + [16] = 0xB, /* 16s */ > }; > > static int sunxi_wdt_ping(struct watchdog_device *wdt_dev) >
Hi, El 04/04/14 14:35, Guenter Roeck escribió: > On 04/04/2014 10:24 AM, Emilio López wrote: >> When compiling sunxi_defconfig while using C=2, the following error >> causes the compilation to fail: >> >> drivers/watchdog/sunxi_wdt.c:60:15: error: constant 0b0001 is not >> a valid number >> >> Fix it by using hex notation instead of the non-standard binary one >> > > What defines "non-standard" here ? non-standard as not part of the C standard. Binary constant notation is a GCC extension as far as I'm aware: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23479 http://gcc.gnu.org/onlinedocs/gcc/Binary-constants.html (Note the "C Extensions" section) > Isn't this a sparse problem that > should possibly > be fixed in sparse instead ? It could be fixed in sparse as well, I don't really mind either way. The binary notation doesn't seem to be used much, if at all, on the kernel though; most of the matches I saw when quickly grepping were comments. Cheers, Emilio
On 04/04/2014 10:57 AM, Emilio López wrote: > Hi, > > El 04/04/14 14:35, Guenter Roeck escribió: >> On 04/04/2014 10:24 AM, Emilio López wrote: >>> When compiling sunxi_defconfig while using C=2, the following error >>> causes the compilation to fail: >>> >>> drivers/watchdog/sunxi_wdt.c:60:15: error: constant 0b0001 is not >>> a valid number >>> >>> Fix it by using hex notation instead of the non-standard binary one >>> >> >> What defines "non-standard" here ? > > non-standard as not part of the C standard. Binary constant notation is a GCC extension as far as I'm aware: > > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23479 > http://gcc.gnu.org/onlinedocs/gcc/Binary-constants.html (Note the "C Extensions" section) > Ok. >> Isn't this a sparse problem that >> should possibly >> be fixed in sparse instead ? > > It could be fixed in sparse as well, I don't really mind either way. The binary notation doesn't seem to be used much, if at all, on the kernel though; most of the matches I saw when quickly grepping were comments. > Nah, if it is non-standard I don't think that would be a good idea. Guenter
On 04/04/2014 10:24 AM, Emilio López wrote: > When compiling sunxi_defconfig while using C=2, the following error > causes the compilation to fail: > > drivers/watchdog/sunxi_wdt.c:60:15: error: constant 0b0001 is not a valid number > > Fix it by using hex notation instead of the non-standard binary one > > Signed-off-by: Emilio López <emilio@elopez.com.ar> Reviewed-by: Guenter Roeck <linux@roeck-us.net>
El 04/04/14 15:02, Guenter Roeck escribió: > On 04/04/2014 10:24 AM, Emilio López wrote: >> When compiling sunxi_defconfig while using C=2, the following error >> causes the compilation to fail: >> >> drivers/watchdog/sunxi_wdt.c:60:15: error: constant 0b0001 is not >> a valid number >> >> Fix it by using hex notation instead of the non-standard binary one >> >> Signed-off-by: Emilio López <emilio@elopez.com.ar> > > Reviewed-by: Guenter Roeck <linux@roeck-us.net> > Wim, Maxime, any comments on this? Cheers, Emilio
On Sun, May 11, 2014 at 04:46:59PM -0300, Emilio López wrote: > El 04/04/14 15:02, Guenter Roeck escribió: > >On 04/04/2014 10:24 AM, Emilio López wrote: > >>When compiling sunxi_defconfig while using C=2, the following error > >>causes the compilation to fail: > >> > >> drivers/watchdog/sunxi_wdt.c:60:15: error: constant 0b0001 is not > >>a valid number > >> > >>Fix it by using hex notation instead of the non-standard binary one > >> > >>Signed-off-by: Emilio López <emilio@elopez.com.ar> > > > >Reviewed-by: Guenter Roeck <linux@roeck-us.net> > > > > Wim, Maxime, any comments on this? I'm fine with this. Wim? Do you want to take this patch, or can we have an Acked-by? Thanks, Maxime
diff --git a/drivers/watchdog/sunxi_wdt.c b/drivers/watchdog/sunxi_wdt.c index cd00a78..693b9d2 100644 --- a/drivers/watchdog/sunxi_wdt.c +++ b/drivers/watchdog/sunxi_wdt.c @@ -57,17 +57,17 @@ struct sunxi_wdt_dev { */ static const int wdt_timeout_map[] = { - [1] = 0b0001, /* 1s */ - [2] = 0b0010, /* 2s */ - [3] = 0b0011, /* 3s */ - [4] = 0b0100, /* 4s */ - [5] = 0b0101, /* 5s */ - [6] = 0b0110, /* 6s */ - [8] = 0b0111, /* 8s */ - [10] = 0b1000, /* 10s */ - [12] = 0b1001, /* 12s */ - [14] = 0b1010, /* 14s */ - [16] = 0b1011, /* 16s */ + [1] = 0x1, /* 1s */ + [2] = 0x2, /* 2s */ + [3] = 0x3, /* 3s */ + [4] = 0x4, /* 4s */ + [5] = 0x5, /* 5s */ + [6] = 0x6, /* 6s */ + [8] = 0x7, /* 8s */ + [10] = 0x8, /* 10s */ + [12] = 0x9, /* 12s */ + [14] = 0xA, /* 14s */ + [16] = 0xB, /* 16s */ }; static int sunxi_wdt_ping(struct watchdog_device *wdt_dev)
When compiling sunxi_defconfig while using C=2, the following error causes the compilation to fail: drivers/watchdog/sunxi_wdt.c:60:15: error: constant 0b0001 is not a valid number Fix it by using hex notation instead of the non-standard binary one Signed-off-by: Emilio López <emilio@elopez.com.ar> --- drivers/watchdog/sunxi_wdt.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-)