Thread (10 messages) 10 messages, 6 authors, 2016-10-05

[PATCH 00/15] improve function-level documentation

From: Julia Lawall <hidden>
Date: 2016-10-01 20:39:26
Also in: dri-devel, kernel-janitors, linux-clk, linux-media, linux-pm, linux-tegra, lkml


On Sat, 1 Oct 2016, Joe Perches wrote:
On Sat, 2016-10-01 at 21:46 +0200, Julia Lawall wrote:
quoted
These patches fix cases where the documentation above a function definition
is not consistent with the function header.  Issues are detected using the
semantic patch below (http://coccinelle.lip6.fr/).  Basically, the semantic
patch parses a file to find comments, then matches each function header,
and checks that the name and parameter list in the function header are
compatible with the comment that preceeds it most closely.
Hi Julia.

Would it be possible for a semantic patch to scan for
function definitions where the types do not have
identifiers and update the definitions to match the
declarations?

For instance, given:

<some.h>
int foo(int);

<some.c>
int foo(int bar)
{
	return baz;
}

Could coccinelle output:

diff a/some.h b/some.h
[]
-int foo(int);
+int foo(int bar);
The following seems to work:

@r@
identifier f;
position p;
type T, t;
parameter list[n] ps;
@@

T f at p(ps,t,...);

@s@
identifier r.f,x;
type r.T, r.t;
parameter list[r.n] ps;
@@

T f(ps,t x,...) { ... }

@@
identifier r.f, s.x;
position r.p;
type r.T, r.t;
parameter list[r.n] ps;
@@

T f at p(ps,t
+ x
  ,...);

After letting it run for a few minutes without making any effort to
include .h files, I get over 2700 changed lines.

julia
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help