All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alessandro Carminati <alessandro.carminati@gmail.com>
To: Markus Elfring <Markus.Elfring@web.de>
Cc: cocci@inria.fr
Subject: Re: [cocci] List global variables with SmPL
Date: Tue, 10 May 2022 09:52:32 +0200	[thread overview]
Message-ID: <CAPp5cGQRKxk5RXn7a=7R3s4y=fsvi_O9aFUj6HudPSX+06-_2w@mail.gmail.com> (raw)
In-Reply-To: <6a926cad-e15a-5c04-1fc9-34d20bd18618@web.de>

[-- Attachment #1: Type: text/plain, Size: 2169 bytes --]

Hello Markus,


Il giorno lun 9 mag 2022 alle ore 21:23 Markus Elfring <
Markus.Elfring@web.de> ha scritto:

>
> The solution you sent indeed does what I expected.
>
>
> I doubt that it fits to your initial source code analysis desire.
>
> Are your expectations still evolving (also for your data processing needs)?
>
Indeed Julia's proposed code does not solve all the situations I encounter
now  in the kernel source analysis.
It reports not only global variable names but also function names.
It confuses sparse annotation and a few other macros with variable names.
I also have trouble with "extern" declared variables that appear multiple
times.
Still, it is far better than I was up to, And it allows me to improve the
solution by adding statements and rules to make it better suit my use case.
Currently, I'm using this, but I still have duplicates due to "extern"
declarations.
```
@func@
type T;
identifier i;
position p : script:python(i) { p[0].current_element == i};
@@

T i(...)@p;


@r depends on !func@
type T;
identifier i;
expression E;
position p : script:python(i) { p[0].current_element == i};
@@

(
 T i@p;
|
 T i@p=E;
)

@script:python@
i << r.i;
@@
print (i)
```

>
>
> Would you mind add a short explanation of this statement:
> `position p : script:python(i) { p[0].current_element == i};`
> I probably have a simplified understanding of what a position is.
>
> I imagine that known information sources can help further.
>
>
> https://gitlab.inria.fr/coccinelle/coccinelle/-/blob/5069eaeadd731ecdd99e7a6f4465c286a2792354/docs/manual/cocci_syntax.tex#L410
>
> https://github.com/coccinelle/coccinelle/blob/ae337fce1512ff15aabc3ad5b6d2e537f97ab62a/docs/manual/cocci_syntax.tex#L410
>
Thanks for this.

>
>
>
> Maybe it is worth digging deeper and having a more concrete knowledge.
>
>
> Probably, yes.
>
>
>
> Any read you want to suggest to me?
>
>
> Related links for example:
>
>
> https://gitlab.inria.fr/coccinelle/coccinelle/-/blob/5069eaeadd731ecdd99e7a6f4465c286a2792354/docs/Coccilib.3cocci#L5
>
> https://github.com/coccinelle/coccinelle/blob/57cbff0c5768e22bb2d8c20e8dae74294515c6b3/docs/Coccilib.3cocci#L5
>
>
>
> Regards,
> Markus
>

[-- Attachment #2: Type: text/html, Size: 5096 bytes --]

  reply	other threads:[~2022-05-10  7:53 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-09 10:05 [cocci] List global variables Alessandro Carminati
2022-05-09 10:11 ` Julia Lawall
2022-05-09 10:17 ` Julia Lawall
     [not found]   ` <CAPp5cGRMAOanfvuhV1LAV9eZka8ZJHRPy6ncMwO=Q+C=GUA2gA@mail.gmail.com>
2022-05-09 10:49     ` [cocci] Fwd: " Alessandro Carminati
2022-05-09 11:49       ` Julia Lawall
2022-05-09 19:23       ` [cocci] List global variables with SmPL Markus Elfring
2022-05-10  7:52         ` Alessandro Carminati [this message]
2022-05-10  8:06           ` Julia Lawall
2022-05-10  9:18             ` Alessandro Carminati
2022-05-10  9:24               ` Julia Lawall
2022-05-10  9:53                 ` Alessandro Carminati
2022-05-10 10:39                   ` Julia Lawall
2022-05-10 17:00                     ` Markus Elfring
2022-05-21 14:05                       ` Markus Elfring
2022-05-11  7:38                     ` Alessandro Carminati
2022-05-11  7:44                       ` Julia Lawall
2022-05-11  7:57                         ` Alessandro Carminati
2022-05-11  8:14                       ` Julia Lawall
2022-05-11  8:36                         ` Alessandro Carminati
2022-05-11  8:46                           ` Julia Lawall
2022-05-11 19:54                           ` Markus Elfring
2022-05-11 18:11                       ` Markus Elfring
2022-05-12  6:42                         ` Alessandro Carminati
2022-05-12 16:48                           ` Markus Elfring

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAPp5cGQRKxk5RXn7a=7R3s4y=fsvi_O9aFUj6HudPSX+06-_2w@mail.gmail.com' \
    --to=alessandro.carminati@gmail.com \
    --cc=Markus.Elfring@web.de \
    --cc=cocci@inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.