Subject: Re: [PATCH 9/9] treewide: Remove newlines inside DEFINE_PER_CPU() macros

From: Michal Marek <[email-masked]>
Date: Thu, 22 Oct 2015 14:06:32 +0200

On 2015-10-22 13:31, Prarit Bhargava wrote:
> 
> 
> On 10/21/2015 03:52 PM, Michal Marek wrote:
>> Dne 21.10.2015 v 21:27 Prarit Bhargava napsal(a):
>>> On 10/15/2015 04:16 PM, Michal Marek wrote:
>>>> Otherwise make tags can't parse them:
>>>>
>>>> ctags: Warning: arch/ia64/kernel/smp.c:60: null expansion of name pattern "\1"
>>>> ctags: Warning: drivers/xen/events/events_2l.c:41: null expansion of name pattern "\1"
>>>> ctags: Warning: drivers/acpi/processor_idle.c:64: null expansion of name pattern "\1"
>>>> ctags: Warning: kernel/locking/lockdep.c:153: null expansion of name pattern "\1"
>>>> ctags: Warning: kernel/workqueue.c:305: null expansion of name pattern "\1"
>>>> ctags: Warning: kernel/rcu/rcutorture.c:133: null expansion of name pattern "\1"
>>>> ctags: Warning: kernel/rcu/rcutorture.c:135: null expansion of name pattern "\1"
>>>> ctags: Warning: net/rds/page.c:45: null expansion of name pattern "\1"
>>>> ctags: Warning: net/ipv4/syncookies.c:53: null expansion of name pattern "\1"
>>>> ctags: Warning: net/ipv6/syncookies.c:44: null expansion of name pattern "\1"
>>>
>>> I guarantee you're going to end up fixing this issue over and over again as more
>>> code is added in.
>>
>> This is certainly going to happen, but it should be quickly spotted by
>> anybody running make tags on linux-next. And 10 instances since the
>> beginning of git is not too many.
> 
> Not everyone uses 'make tags'.  'make cscope' exists and functions correctly ;)

cscope works, but unfortunately it cannot be extended to understand the
preprocessor constructs. But it does not suffer from the problem at
hand, obviously.

>> It's not ctags itself parsing the DEFINE_PER_CPU() macro, but a
>> user-supplied regex specified on commandline. Which can only operate on
>> single lines.
>>
> 
> What's the regex?

See
https://lkml.kernel.org/r/[email-masked]

It used to require a closing parenthesis, so it would not match the
multiline macro invocations at all. Now it matches them, but ctags
correctly warns that the empty string is probably not what we intended
to match.

Michal