Messages in this thread | | | From | Rasmus Villemoes <> | Subject | Re: [PATCH 1/3] checkpatch: Check for use of disallowed macros | Date | Thu, 18 Dec 2014 22:15:28 +0100 |
| |
On Fri, Dec 12 2014, Joe Perches <joe@perches.com> wrote:
> On Fri, 2014-12-12 at 11:51 +0100, Rasmus Villemoes wrote: >> Since fe7c36c7 ("Makefile: Build with -Werror=date-time if the >> compiler supports it"), use of __DATE__, __TIME__, __TIMESTAMP__ has >> been disallowed. This hasn't prevented a few new users from creeping >> in. Make checkpatch complain. >> + >> +# Use of __DATE__, __TIME__, __TIMESTAMP__ is not allowed >> + if ($line =~ m/\b__(?:DATE|TIME|TIMESTAMP)__\b/) { >> + ERROR("DATETIME", "Do not use the macros __DATE__, __TIME__ and __TIMESTAMP__\n" . $herecurr) > > I'd probably add that adjacent to the existing __FUNCTION__ > test near line 5000 and make the test show the specific macro > used.
Yeah, that makes sense. I didn't really know where to put it.
> Maybe add __LINE__ and __FILE__ as a separate --strict test too.
Are those also disallowed, or is it just that new users shouldn't be added?
> Also the error message should should show the specific macro and > if __DATE__ and __TIME__ are on the same line, the error should > be emitted twice. > > Maybe: > while ($line =~ /\b(__(?:DATE|TIME|TIMESTAMP)__)\b/g) { > ERROR("DATETIME", > "Do not use the $1 macro\n" . $herecurr); > }
Looks good to me. I could resend, but can't really claim authorship. Joe, mind taking it from here?
Rasmus
| |