The Linux Kernel Mailing List
 help / color / mirror / Atom feed
From: Markus Elfring <Markus.Elfring@web.de>
To: Julia Lawall <julia.lawall@inria.fr>,
	cocci@inria.fr, Sang-Heon Jeon <ekffu200098@gmail.com>
Cc: Nicolas Palix <nicolas.palix@imag.fr>,
	LKML <linux-kernel@vger.kernel.org>,
	kernel-janitors@vger.kernel.org
Subject: Re: [cocci] [1/36] coccinelle: misc: add cond_return_no_effect.cocci
Date: Sun, 26 Jul 2026 13:30:43 +0200	[thread overview]
Message-ID: <077ae2e1-c471-4e87-9d40-caddd3a8a358@web.de> (raw)
In-Reply-To: <514fd536-291a-bfad-fac8-15e0d0611689@inria.fr>

>>> +@depends on patch@
>>> +type T;
>>> +identifier collect.ret;
>>> +constant C;
>>> +@@
>>> +-      T ret = C;
>>> +       ... when != ret
>>> +           when strict
>>> +
>>
>> While testing the script, I found that this rule can unexpectedly
>> remove the declaration of a global or static variable in the same
>> file, even when it is still used elsewhere. There is no such case in
>> this series, but I will fix it in v2 by matching the declaration
>> inside a function.
> 
> I think you could avoid matching the path from the top of the function to
> the declaration by doing the following:
> 
> declaration D;
> statement S;
> 
> (
> - T ret = C
> (
>   D
> |
>   S
> )
> &
>   T ret = C;
>   ... when != ret
>       when strict
> )

I would appreciate to clarify such an approach for a bit of dead-code elimination
in more detail.

I got the impression that some versions of the C programming language do
not handle variable declarations also as “statements”.
https://en.cppreference.com/c/language/statements

See also:
https://en.cppreference.com/cpp/language/statements#Declaration_statements


> The first part ensures that it is not a top-level declaration and the
> second part does the check you had previously.

I do not see so far that the intended source code restriction would be explicitly
expressed here.

Will further software extensions become more helpful accordingly?

Regards,
Markus

  parent reply	other threads:[~2026-07-26 11:30 UTC|newest]

Thread overview: 83+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-23 18:45 [PATCH 00/36] treewide: remove conditional returns with no effect Sang-Heon Jeon
2026-07-23 18:45 ` [PATCH 01/36] coccinelle: misc: add cond_return_no_effect.cocci Sang-Heon Jeon
2026-07-24 11:19   ` [cocci] " Markus Elfring
2026-07-24 11:38     ` Julia Lawall
2026-07-24 11:47       ` Markus Elfring
2026-07-24 14:42     ` Sang-Heon Jeon
2026-07-24 15:32       ` [cocci] [1/36] " Markus Elfring
2026-07-24 16:33         ` Sang-Heon Jeon
2026-07-24 16:50           ` Markus Elfring
2026-07-25  5:46           ` Markus Elfring
2026-07-24 14:41   ` [PATCH 01/36] " Sang-Heon Jeon
2026-07-24 14:55     ` Julia Lawall
2026-07-24 16:02       ` [cocci] [1/36] " Markus Elfring
2026-07-24 16:48       ` [PATCH 01/36] " Sang-Heon Jeon
2026-07-26 11:30       ` Markus Elfring [this message]
2026-07-26 11:54         ` [cocci] [1/36] " Julia Lawall
2026-07-26 12:42           ` Markus Elfring
2026-07-27  9:51   ` [cocci] [PATCH 01/36] " Markus Elfring
2026-07-23 18:45 ` [PATCH 02/36] drm/amd: remove conditional return with no effect Sang-Heon Jeon
2026-07-23 18:45 ` [PATCH 03/36] drm/radeon: " Sang-Heon Jeon
2026-07-23 18:45 ` [PATCH 04/36] dpll: zl3073x: " Sang-Heon Jeon
2026-07-23 18:45 ` [PATCH 05/36] drm/i915: " Sang-Heon Jeon
2026-07-23 18:45 ` [PATCH 06/36] drm: " Sang-Heon Jeon
2026-07-23 18:45 ` [PATCH 07/36] net: ethernet: " Sang-Heon Jeon
2026-07-23 20:24   ` Niklas Söderlund
2026-07-23 20:35   ` Kiyanovski, Arthur
2026-07-23 18:45 ` [PATCH 08/36] net: " Sang-Heon Jeon
2026-07-23 19:04   ` Andrew Lunn
2026-07-23 18:45 ` [PATCH 09/36] net: intel: " Sang-Heon Jeon
2026-07-23 18:45 ` [PATCH 10/36] wifi: " Sang-Heon Jeon
2026-07-24  0:37   ` Ping-Ke Shih
2026-07-23 18:45 ` [PATCH 11/36] ipvs: " Sang-Heon Jeon
2026-07-23 18:45 ` [PATCH 12/36] media: " Sang-Heon Jeon
2026-07-23 20:26   ` Niklas Söderlund
2026-07-23 18:45 ` [PATCH 13/36] ALSA: " Sang-Heon Jeon
2026-07-23 18:45 ` [PATCH 14/36] ASoC: " Sang-Heon Jeon
2026-07-24  5:05   ` Mukunda,Vijendar
2026-07-23 18:45 ` [PATCH 15/36] iio: " Sang-Heon Jeon
2026-07-23 21:46   ` Joshua Crofts
2026-07-24  0:38   ` Jonathan Cameron
2026-07-24 15:22     ` Sang-Heon Jeon
2026-07-23 18:45 ` [PATCH 16/36] Input: " Sang-Heon Jeon
2026-07-24 19:30   ` Dmitry Torokhov
2026-07-25 12:10     ` Sang-Heon Jeon
2026-07-23 18:45 ` [PATCH 17/36] clk: " Sang-Heon Jeon
2026-07-24 15:49   ` Brian Masney
2026-07-23 18:45 ` [PATCH 18/36] crypto: drivers - " Sang-Heon Jeon
2026-07-23 18:45 ` [PATCH 19/36] dmaengine: qcom_hidma: " Sang-Heon Jeon
2026-07-23 18:45 ` [PATCH 20/36] stm class: " Sang-Heon Jeon
2026-07-23 18:45 ` [PATCH 21/36] RDMA/ocrdma: " Sang-Heon Jeon
2026-07-23 18:45 ` [PATCH 22/36] iommu/s390: " Sang-Heon Jeon
2026-07-23 18:45 ` [PATCH 23/36] dm vdo: " Sang-Heon Jeon
2026-07-23 18:45 ` [PATCH 24/36] pinctrl: mediatek: " Sang-Heon Jeon
2026-07-25 13:50   ` Linus Walleij
2026-07-23 18:45 ` [PATCH 25/36] platform/x86: toshiba_haps: " Sang-Heon Jeon
2026-07-24 15:44   ` Ilpo Järvinen
2026-07-24 16:21     ` Sang-Heon Jeon
2026-07-23 18:45 ` [PATCH 26/36] power: supply: pm8916_lbc: " Sang-Heon Jeon
2026-07-23 18:45 ` [PATCH 27/36] RAS/AMD/ATL: " Sang-Heon Jeon
2026-07-23 19:44   ` Borislav Petkov
2026-07-23 18:45 ` [PATCH 28/36] regulator: wm831x-isink: " Sang-Heon Jeon
2026-07-24  8:24   ` Charles Keepax
2026-07-23 18:45 ` [PATCH 29/36] rtc: pcf2127: " Sang-Heon Jeon
2026-07-26 15:15   ` Bruno Thomsen
2026-07-23 18:45 ` [PATCH 30/36] scsi: mpt3sas: " Sang-Heon Jeon
2026-07-23 18:45 ` [PATCH 31/36] thermal/drivers/k3_bandgap: " Sang-Heon Jeon
2026-07-23 18:45 ` [PATCH 32/36] USB: serial: ch341: " Sang-Heon Jeon
2026-07-23 18:45 ` [PATCH 33/36] usb: typec: fusb302: " Sang-Heon Jeon
2026-07-27 13:35   ` Heikki Krogerus
2026-07-23 18:45 ` [PATCH 34/36] smb: client: " Sang-Heon Jeon
2026-07-23 20:27   ` Steve French
2026-07-24 17:12     ` Sang-Heon Jeon
2026-07-25 16:58       ` Steve French
2026-07-23 18:45 ` [PATCH 35/36] cpupower: " Sang-Heon Jeon
2026-07-23 18:45 ` [PATCH 36/36] memblock: " Sang-Heon Jeon
2026-07-24 21:48 ` [PATCH 00/36] treewide: remove conditional returns " Jakub Kicinski
2026-07-27  8:30   ` Jani Nikula
2026-07-27 11:08     ` Sang-Heon Jeon
2026-07-27 11:36       ` Jani Nikula
2026-07-24 23:35 ` (subset) " Sebastian Reichel
2026-07-27 12:12 ` Mark Brown
2026-07-27 12:59   ` Sang-Heon Jeon
2026-07-27 12:26 ` (subset) " Mark Brown

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=077ae2e1-c471-4e87-9d40-caddd3a8a358@web.de \
    --to=markus.elfring@web.de \
    --cc=cocci@inria.fr \
    --cc=ekffu200098@gmail.com \
    --cc=julia.lawall@inria.fr \
    --cc=kernel-janitors@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nicolas.palix@imag.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox