Coccinelle Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: elfring@users.sourceforge.net (SF Markus Elfring)
To: cocci@systeme.lip6.fr
Subject: [Cocci] Finding unstored return values with SmPL
Date: Sat, 18 Jul 2015 15:36:39 +0200	[thread overview]
Message-ID: <55AA5667.5010009@users.sourceforge.net> (raw)
In-Reply-To: <alpine.DEB.2.02.1507181451340.2016@localhost6.localdomain6>

> Between the regular expression and the undefined dependencies,
> I have no idea what you are trying to do.

I would present the "gap" (further SmPL rules) there if the main rule
will be clear for the suggested top-down design approach.


> Maybe just give an example of code that you would like to match.

I would like to achieve a bit of functionality which is already provided
by other popular static source code analysis tools to some degree
also by means of the Coccinelle software.

Other tools can also detect unused/unchecked return values.
Examples:
http://www.splint.org/manual/html/sec8.html#_Toc534974997
https://gcc.gnu.org/onlinedocs/gcc-5.2.0/gcc/Function-Attributes.html#index-g_t_0040code_007bwarn_005funused_005fresult_007d-function-attribute-3299


The SmPL approach that we are discussing now should point open issues out
in source code like the following small test example.

int implementation_with_an_ignored_return_value(void)
{
 malloc(123);
 return 0;
}


I imagine that a complete solution would need a detailed data flow analysis
for this purpose. But I am not familiar enough will all necessary
technology there so far.

So I hope that a smaller solution can be achieved with Coccinelle.
* I can find an ordinary function call without problems.

* The corresponding software development challenges become apparent
  when I would like to ensure by a SmPL filter that the source code position
  of this call is different from all other function calls which were detected
  at other places within a function implementation.

  @show_unstored_return_values
   depends on !find_calls_for_initialisations
           && !find_calls_for_designated_initialisations
           && !find_calls_for_assignments@

  Should this dependency specification be extended anyhow?

Regards,
Markus

  reply	other threads:[~2015-07-18 13:36 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-15  9:00 [Cocci] Finding unstored return values with SmPL SF Markus Elfring
2015-07-15 10:30 ` Julia Lawall
2015-07-18 11:40   ` SF Markus Elfring
2015-07-18 11:52     ` Julia Lawall
2015-07-18 12:32       ` SF Markus Elfring
2015-07-18 12:52         ` Julia Lawall
2015-07-18 13:36           ` SF Markus Elfring [this message]
2015-07-18 19:57             ` Julia Lawall
2015-07-19 13:43               ` SF Markus Elfring
2015-07-18 20:09             ` Julia Lawall
2015-07-19 12:54               ` SF Markus Elfring
2015-07-19 13:06                 ` Julia Lawall
2015-07-19 14:42                   ` SF Markus Elfring
2015-07-19 16:21                     ` Julia Lawall
2015-07-19 18:48                       ` SF Markus Elfring
2015-07-19 18:49                         ` Julia Lawall
2015-07-20 11:31       ` SF Markus Elfring
2015-07-20 11:37         ` Julia Lawall
2015-07-20 12:55           ` [Cocci] Finding designated initialisers " SF Markus Elfring
2015-07-20 13:27           ` [Cocci] Finding unstored return values " SF Markus Elfring
2015-07-20 16:28             ` Julia Lawall
2015-07-20 20:23               ` [Cocci] Finding designated initialisers " SF Markus Elfring
2015-07-20 20:38                 ` Julia Lawall
2015-07-21  5:47                   ` SF Markus Elfring
2015-08-08  8:05                     ` SF Markus Elfring
2015-08-08  8:25                       ` Julia Lawall
2015-08-08  8:41                         ` SF Markus Elfring
2015-08-08 11:40                       ` Julia Lawall
2015-08-08 11:58                         ` SF Markus Elfring
2015-08-08 12:10                           ` Julia Lawall
2015-08-08 12:56                             ` SF Markus Elfring
2015-07-22 17:42         ` [Cocci] Finding unstored return values " SF Markus Elfring
2015-07-22 17:44           ` Julia Lawall
2015-07-23  5:20             ` SF Markus Elfring
2015-07-23  5:26               ` Julia Lawall
2015-08-05 11:00                 ` SF Markus Elfring
     [not found]                   ` <alpine.DEB.2.02.1508051434540.2198@localhost6.localdomain6>
     [not found]                     ` <55C2229E.7030409@users.sourceforge.net>
     [not found]                       ` <alpine.DEB.2.02.1508051652140.2198@localhost6.localdomain6>
     [not found]                         ` <55C2280A.6000204@users.sourceforge.net>
     [not found]                           ` <alpine.DEB.2.02.1508051718110.2198@localhost6.localdomain6>
     [not found]                             ` <55C2328C.5020405@users.sourceforge.net>
     [not found]                               ` <alpine.DEB.2.02.1508051948060.2039@localhost6.localdomain6>
2015-08-06  9:04                                 ` [Cocci] Fine-tuning for the processing of function name lists? SF 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=55AA5667.5010009@users.sourceforge.net \
    --to=elfring@users.sourceforge.net \
    --cc=cocci@systeme.lip6.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