All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] coccinelle: Add patch for replacing open-coded PTR_RET
@ 2011-12-19 13:24 Lars-Peter Clausen
  2011-12-19 13:24 ` [PATCH 2/2] coccinelle: Add patch for replacing open-coded IS_ERR_OR_NULL Lars-Peter Clausen
  2011-12-20 22:19 ` [Cocci] [PATCH 1/2] coccinelle: Add patch for replacing open-coded PTR_RET Julia Lawall
  0 siblings, 2 replies; 8+ messages in thread
From: Lars-Peter Clausen @ 2011-12-19 13:24 UTC (permalink / raw)
  To: Julia Lawall, Gilles Muller, Nicolas Palix
  Cc: cocci, linux-kernel, Lars-Peter Clausen

The PTR_RET function returns the error value of its parameter if it is an
ERR_PTR, otherwise it returns 0. This patch adds a semantic patch which finds
open-coded instances of this check and replaces them.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
---
 scripts/coccinelle/api/ptr_ret.cocci |   55 ++++++++++++++++++++++++++++++++++
 1 files changed, 55 insertions(+), 0 deletions(-)
 create mode 100644 scripts/coccinelle/api/ptr_ret.cocci

diff --git a/scripts/coccinelle/api/ptr_ret.cocci b/scripts/coccinelle/api/ptr_ret.cocci
new file mode 100644
index 0000000..dfd9b1f
--- /dev/null
+++ b/scripts/coccinelle/api/ptr_ret.cocci
@@ -0,0 +1,55 @@
+///
+/// Use PTR_RET function instead of open coding it
+///
+// Confidence: High
+// Options:
+//
+// Keywords: IS_ERR, PTR_ERR, PTR_RET
+// Version min: 2.6.39
+//
+
+virtual context
+virtual patch
+virtual org
+virtual report
+
+@depends on context@
+expression x;
+@@
+*if (IS_ERR(x))
+*	return PTR_ERR(x);
+*return 0;
+
+@depends on patch@
+expression x;
+@@
+-if (IS_ERR(x))
+-	return PTR_ERR(x);
+-return 0;
++return PTR_RET(x);
+
+@r depends on org || report@
+expression x;
+position p;
+@@
+
+ if (IS_ERR@p(x))
+	return PTR_ERR(x);
+ return 0;
+
+@script:python depends on org@
+p << r.p;
+x << r.x;
+@@
+
+msg="WARNING PTR_RET can be used with %s" % (x)
+msg_safe=msg.replace("[","@(").replace("]",")")
+coccilib.org.print_todo(p[0], msg_safe)
+
+@script:python depends on report@
+p << r.p;
+x << r.x;
+@@
+
+msg="WARNING: PTR_RET can be used with %s" % (x)
+coccilib.report.print_report(p[0], msg)
-- 
1.7.7.3



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/2] coccinelle: Add patch for replacing open-coded IS_ERR_OR_NULL
  2011-12-19 13:24 [PATCH 1/2] coccinelle: Add patch for replacing open-coded PTR_RET Lars-Peter Clausen
@ 2011-12-19 13:24 ` Lars-Peter Clausen
  2011-12-20 22:24   ` [Cocci] " Julia Lawall
  2011-12-20 22:19 ` [Cocci] [PATCH 1/2] coccinelle: Add patch for replacing open-coded PTR_RET Julia Lawall
  1 sibling, 1 reply; 8+ messages in thread
From: Lars-Peter Clausen @ 2011-12-19 13:24 UTC (permalink / raw)
  To: Julia Lawall, Gilles Muller, Nicolas Palix
  Cc: cocci, linux-kernel, Lars-Peter Clausen

The IS_ERR_OR_NULL function returns true if the passed parameter is either a
ERR_PTR or NULL. This patch adds a semantic patch which finds open-coded
instances of this check and replaces them.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
---
 scripts/coccinelle/api/is_err_or_null.cocci |   98 +++++++++++++++++++++++++++
 1 files changed, 98 insertions(+), 0 deletions(-)
 create mode 100644 scripts/coccinelle/api/is_err_or_null.cocci

diff --git a/scripts/coccinelle/api/is_err_or_null.cocci b/scripts/coccinelle/api/is_err_or_null.cocci
new file mode 100644
index 0000000..04afd1e
--- /dev/null
+++ b/scripts/coccinelle/api/is_err_or_null.cocci
@@ -0,0 +1,98 @@
+///
+/// Use IS_ERR_OR_NULL function instead of open coding it
+///
+// Confidence: High
+// Options:
+//
+// Keywords: IS_ERR, IS_ERR_OR_NULL
+// Version min: 2.6.33
+//
+
+virtual context
+virtual patch
+virtual org
+virtual report
+
+// Since the logical or operator by itself is not commutative we need rules for
+// both cases as well as for their De Morgan equivalents.
+
+@depends on context@
+expression x;
+@@
+*(IS_ERR(x) || !x)
+
+@depends on context@
+expression x;
+@@
+*(!x || IS_ERR(x))
+
+@depends on context@
+expression x;
+@@
+*(!IS_ERR(x) && x)
+
+@depends on context@
+expression x;
+@@
+*(x && !IS_ERR(x))
+
+@depends on patch@
+expression x;
+@@
+-(IS_ERR(x) || !x)
++IS_ERR_OR_NULL(x)
+
+@depends on patch@
+expression x;
+@@
+-(!x || IS_ERR(x))
++IS_ERR_OR_NULL(x)
+
+@depends on patch@
+expression x;
+@@
+-(!IS_ERR(x) && x)
++ !IS_ERR_OR_NULL(x)
+
+@depends on patch@
+expression x;
+@@
+-(x && !IS_ERR(x))
++ !IS_ERR_OR_NULL(x)
+
+@r depends on org || report@
+expression x;
+position p;
+statement S;
+@@
+// We'll probably miss some some cases with this, but the if gives us an anchor
+// and we do not have to write a indivual rule for each case. patch and context
+// mode will report all cases
+ if(@p
+(
+ IS_ERR(x) || !x
+|
+ !x || IS_ERR(x)
+|
+ !IS_ERR(x) && x
+|
+ x && !IS_ERR(x)
+)
+ ) S
+
+@script:python depends on org@
+p << r.p;
+x << r.x;
+@@
+
+msg="IS_ERR_OR_NULL can be used with %s" % (x)
+msg_safe=msg.replace("[","@(").replace("]",")")
+coccilib.org.print_todo(p[0], msg_safe)
+
+@script:python depends on report@
+p << r.p;
+x << r.x;
+@@
+
+msg="IS_ERR_OR_NULL can be used with %s" % (x)
+coccilib.report.print_report(p[0], msg)
-- 
1.7.7.3



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [Cocci] [PATCH 1/2] coccinelle: Add patch for replacing open-coded PTR_RET
  2011-12-19 13:24 [PATCH 1/2] coccinelle: Add patch for replacing open-coded PTR_RET Lars-Peter Clausen
  2011-12-19 13:24 ` [PATCH 2/2] coccinelle: Add patch for replacing open-coded IS_ERR_OR_NULL Lars-Peter Clausen
@ 2011-12-20 22:19 ` Julia Lawall
  1 sibling, 0 replies; 8+ messages in thread
From: Julia Lawall @ 2011-12-20 22:19 UTC (permalink / raw)
  To: Lars-Peter Clausen
  Cc: Gilles Muller, Nicolas Palix, linux-kernel, cocci, Michal Marek

On Mon, 19 Dec 2011, Lars-Peter Clausen wrote:

> The PTR_RET function returns the error value of its parameter if it is an
> ERR_PTR, otherwise it returns 0. This patch adds a semantic patch which finds
> open-coded instances of this check and replaces them.
>
> Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>

Acked-by: Julia Lawall <julia.lawall@lip6.fr>

> ---
> scripts/coccinelle/api/ptr_ret.cocci |   55 ++++++++++++++++++++++++++++++++++
> 1 files changed, 55 insertions(+), 0 deletions(-)
> create mode 100644 scripts/coccinelle/api/ptr_ret.cocci
>
> diff --git a/scripts/coccinelle/api/ptr_ret.cocci b/scripts/coccinelle/api/ptr_ret.cocci
> new file mode 100644
> index 0000000..dfd9b1f
> --- /dev/null
> +++ b/scripts/coccinelle/api/ptr_ret.cocci
> @@ -0,0 +1,55 @@
> +///
> +/// Use PTR_RET function instead of open coding it
> +///
> +// Confidence: High
> +// Options:
> +//
> +// Keywords: IS_ERR, PTR_ERR, PTR_RET
> +// Version min: 2.6.39
> +//
> +
> +virtual context
> +virtual patch
> +virtual org
> +virtual report
> +
> +@depends on context@
> +expression x;
> +@@
> +*if (IS_ERR(x))
> +*	return PTR_ERR(x);
> +*return 0;
> +
> +@depends on patch@
> +expression x;
> +@@
> +-if (IS_ERR(x))
> +-	return PTR_ERR(x);
> +-return 0;
> ++return PTR_RET(x);
> +
> +@r depends on org || report@
> +expression x;
> +position p;
> +@@
> +
> + if (IS_ERR@p(x))
> +	return PTR_ERR(x);
> + return 0;
> +
> +@script:python depends on org@
> +p << r.p;
> +x << r.x;
> +@@
> +
> +msg="WARNING PTR_RET can be used with %s" % (x)
> +msg_safe=msg.replace("[","@(").replace("]",")")
> +coccilib.org.print_todo(p[0], msg_safe)
> +
> +@script:python depends on report@
> +p << r.p;
> +x << r.x;
> +@@
> +
> +msg="WARNING: PTR_RET can be used with %s" % (x)
> +coccilib.report.print_report(p[0], msg)
> -- 
> 1.7.7.3
>
>
> _______________________________________________
> Cocci mailing list
> Cocci@diku.dk
> http://lists.diku.dk/mailman/listinfo/cocci
> (Web access from inside DIKUs LAN only)
>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Cocci] [PATCH 2/2] coccinelle: Add patch for replacing open-coded IS_ERR_OR_NULL
  2011-12-19 13:24 ` [PATCH 2/2] coccinelle: Add patch for replacing open-coded IS_ERR_OR_NULL Lars-Peter Clausen
@ 2011-12-20 22:24   ` Julia Lawall
  2011-12-21 11:49     ` Lars-Peter Clausen
  0 siblings, 1 reply; 8+ messages in thread
From: Julia Lawall @ 2011-12-20 22:24 UTC (permalink / raw)
  To: Lars-Peter Clausen
  Cc: Julia Lawall, Gilles Muller, Nicolas Palix, linux-kernel, cocci, mmarek

For this one, I made quite a number of changes, some of which required 
fixing a bug in Coccinelle...  I will try to release the bug fix shortly. 
In general, though, I have added ... between the two tests.  I also got 
rid of the focus on ifs in the org and report rules.

julia

virtual context
virtual patch
virtual org
virtual report

// Since the logical or operator by itself is not commutative we need rules for
// both cases as well as for their De Morgan equivalents.

@depends on context@
expression x;
@@
* IS_ERR(x)
   || ... ||
* x == NULL

@depends on context@
expression x;
@@
* x == NULL
   || ... ||
* IS_ERR(x)

@depends on context@
expression x;
@@
* !IS_ERR(x)
   && ... &&
* x != NULL

@depends on context@
expression x;
@@
* x != NULL
   && ... &&
* !IS_ERR(x)

@depends on patch@
expression x;
@@
- IS_ERR(x)
+ IS_ERR_OR_NULL(x)
   || ...
- || x == NULL

@depends on patch@
expression x;
@@
- x == NULL
+ IS_ERR_OR_NULL(x)
   || ...
- || IS_ERR(x)

@depends on patch@
expression x;
@@
- !IS_ERR(x)
+ !IS_ERR_OR_NULL(x)
   && ...
- && x != NULL

@depends on patch@
expression x;
@@
- x != NULL
+ !IS_ERR_OR_NULL(x)
   && ...
- && !IS_ERR(x)

@r depends on org || report@
expression x;
position p;
@@
(
  IS_ERR@p(x) || ... || x == NULL
|
  x == NULL || ... || IS_ERR@p(x)
|
  !IS_ERR@p(x) && ... && x != NULL
|
  x != NULL && ... && !IS_ERR@p(x)
)

@script:python depends on org@
p << r.p;
x << r.x;
@@

msg="IS_ERR_OR_NULL can be used with %s" % (x)
msg_safe=msg.replace("[","@(").replace("]",")")
coccilib.org.print_todo(p[0], msg_safe)

@script:python depends on report@
p << r.p;
x << r.x;
@@

msg="IS_ERR_OR_NULL can be used with %s" % (x)
coccilib.report.print_report(p[0], msg)

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Cocci] [PATCH 2/2] coccinelle: Add patch for replacing open-coded IS_ERR_OR_NULL
  2011-12-20 22:24   ` [Cocci] " Julia Lawall
@ 2011-12-21 11:49     ` Lars-Peter Clausen
  2011-12-21 12:10       ` Julia Lawall
  0 siblings, 1 reply; 8+ messages in thread
From: Lars-Peter Clausen @ 2011-12-21 11:49 UTC (permalink / raw)
  To: Julia Lawall
  Cc: Julia Lawall, Gilles Muller, Nicolas Palix, linux-kernel, cocci, mmarek

On 12/20/2011 11:24 PM, Julia Lawall wrote:
> For this one, I made quite a number of changes, some of which required
> fixing a bug in Coccinelle...  I will try to release the bug fix
> shortly. In general, though, I have added ... between the two tests.  I
> also got rid of the focus on ifs in the org and report rules.
> 

Ok, thanks. Was the removing of the ifs in related to the Coccinelle bug? I
always get an error if I start a match with a conditional.

> julia
> 
> virtual context
> virtual patch
> virtual org
> virtual report
> 
> // Since the logical or operator by itself is not commutative we need
> rules for
> // both cases as well as for their De Morgan equivalents.
> 
> @depends on context@
> expression x;
> @@
> * IS_ERR(x)
>   || ... ||
> * x == NULL
> 
> @depends on context@
> expression x;
> @@
> * x == NULL
>   || ... ||
> * IS_ERR(x)
> 
> @depends on context@
> expression x;
> @@
> * !IS_ERR(x)
>   && ... &&
> * x != NULL
> 
> @depends on context@
> expression x;
> @@
> * x != NULL
>   && ... &&
> * !IS_ERR(x)
> 
> @depends on patch@
> expression x;
> @@
> - IS_ERR(x)
> + IS_ERR_OR_NULL(x)
>   || ...
> - || x == NULL
> 
> @depends on patch@
> expression x;
> @@
> - x == NULL
> + IS_ERR_OR_NULL(x)
>   || ...
> - || IS_ERR(x)
> 
> @depends on patch@
> expression x;
> @@
> - !IS_ERR(x)
> + !IS_ERR_OR_NULL(x)
>   && ...
> - && x != NULL
> 
> @depends on patch@
> expression x;
> @@
> - x != NULL
> + !IS_ERR_OR_NULL(x)
>   && ...
> - && !IS_ERR(x)
> 
> @r depends on org || report@
> expression x;
> position p;
> @@
> (
>  IS_ERR@p(x) || ... || x == NULL
> |
>  x == NULL || ... || IS_ERR@p(x)
> |
>  !IS_ERR@p(x) && ... && x != NULL
> |
>  x != NULL && ... && !IS_ERR@p(x)
> )
> 
> @script:python depends on org@
> p << r.p;
> x << r.x;
> @@
> 
> msg="IS_ERR_OR_NULL can be used with %s" % (x)
> msg_safe=msg.replace("[","@(").replace("]",")")
> coccilib.org.print_todo(p[0], msg_safe)
> 
> @script:python depends on report@
> p << r.p;
> x << r.x;
> @@
> 
> msg="IS_ERR_OR_NULL can be used with %s" % (x)
> coccilib.report.print_report(p[0], msg)


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Cocci] [PATCH 2/2] coccinelle: Add patch for replacing open-coded IS_ERR_OR_NULL
  2011-12-21 11:49     ` Lars-Peter Clausen
@ 2011-12-21 12:10       ` Julia Lawall
  2011-12-23 12:19         ` Lars-Peter Clausen
  0 siblings, 1 reply; 8+ messages in thread
From: Julia Lawall @ 2011-12-21 12:10 UTC (permalink / raw)
  To: Lars-Peter Clausen
  Cc: Gilles Muller, Nicolas Palix, linux-kernel, cocci, mmarek

On Wed, 21 Dec 2011, Lars-Peter Clausen wrote:

> On 12/20/2011 11:24 PM, Julia Lawall wrote:
>> For this one, I made quite a number of changes, some of which required
>> fixing a bug in Coccinelle...  I will try to release the bug fix
>> shortly. In general, though, I have added ... between the two tests.  I
>> also got rid of the focus on ifs in the org and report rules.
>>
>
> Ok, thanks. Was the removing of the ifs in related to the Coccinelle bug? I
> always get an error if I start a match with a conditional.

Not at all.  The bug was that a patterm like:

  @depends on patch@
  expression x;
  @@
  - IS_ERR(x)
  + IS_ERR_OR_NULL(x)
    || ...
  - || x == NULL

thought that it should be applied in two ways, giving an error about a 
double transformation of the IS_ERR call.

Could you reproduce the example that caused problems?

thanks,
julia

>> julia
>>
>> virtual context
>> virtual patch
>> virtual org
>> virtual report
>>
>> // Since the logical or operator by itself is not commutative we need
>> rules for
>> // both cases as well as for their De Morgan equivalents.
>>
>> @depends on context@
>> expression x;
>> @@
>> * IS_ERR(x)
>>   || ... ||
>> * x == NULL
>>
>> @depends on context@
>> expression x;
>> @@
>> * x == NULL
>>   || ... ||
>> * IS_ERR(x)
>>
>> @depends on context@
>> expression x;
>> @@
>> * !IS_ERR(x)
>>   && ... &&
>> * x != NULL
>>
>> @depends on context@
>> expression x;
>> @@
>> * x != NULL
>>   && ... &&
>> * !IS_ERR(x)
>>
>> @depends on patch@
>> expression x;
>> @@
>> - IS_ERR(x)
>> + IS_ERR_OR_NULL(x)
>>   || ...
>> - || x == NULL
>>
>> @depends on patch@
>> expression x;
>> @@
>> - x == NULL
>> + IS_ERR_OR_NULL(x)
>>   || ...
>> - || IS_ERR(x)
>>
>> @depends on patch@
>> expression x;
>> @@
>> - !IS_ERR(x)
>> + !IS_ERR_OR_NULL(x)
>>   && ...
>> - && x != NULL
>>
>> @depends on patch@
>> expression x;
>> @@
>> - x != NULL
>> + !IS_ERR_OR_NULL(x)
>>   && ...
>> - && !IS_ERR(x)
>>
>> @r depends on org || report@
>> expression x;
>> position p;
>> @@
>> (
>>  IS_ERR@p(x) || ... || x == NULL
>> |
>>  x == NULL || ... || IS_ERR@p(x)
>> |
>>  !IS_ERR@p(x) && ... && x != NULL
>> |
>>  x != NULL && ... && !IS_ERR@p(x)
>> )
>>
>> @script:python depends on org@
>> p << r.p;
>> x << r.x;
>> @@
>>
>> msg="IS_ERR_OR_NULL can be used with %s" % (x)
>> msg_safe=msg.replace("[","@(").replace("]",")")
>> coccilib.org.print_todo(p[0], msg_safe)
>>
>> @script:python depends on report@
>> p << r.p;
>> x << r.x;
>> @@
>>
>> msg="IS_ERR_OR_NULL can be used with %s" % (x)
>> coccilib.report.print_report(p[0], msg)
>
>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Cocci] [PATCH 2/2] coccinelle: Add patch for replacing open-coded IS_ERR_OR_NULL
  2011-12-21 12:10       ` Julia Lawall
@ 2011-12-23 12:19         ` Lars-Peter Clausen
  2011-12-23 12:26           ` Julia Lawall
  0 siblings, 1 reply; 8+ messages in thread
From: Lars-Peter Clausen @ 2011-12-23 12:19 UTC (permalink / raw)
  To: Julia Lawall; +Cc: Gilles Muller, Nicolas Palix, linux-kernel, cocci, mmarek

On 12/21/2011 01:10 PM, Julia Lawall wrote:
> On Wed, 21 Dec 2011, Lars-Peter Clausen wrote:
> 
>> On 12/20/2011 11:24 PM, Julia Lawall wrote:
>>> For this one, I made quite a number of changes, some of which required
>>> fixing a bug in Coccinelle...  I will try to release the bug fix
>>> shortly. In general, though, I have added ... between the two tests.  I
>>> also got rid of the focus on ifs in the org and report rules.
>>>
>>
>> Ok, thanks. Was the removing of the ifs in related to the Coccinelle
>> bug? I
>> always get an error if I start a match with a conditional.
> 
> Not at all.  The bug was that a patterm like:
> 
>  @depends on patch@
>  expression x;
>  @@
>  - IS_ERR(x)
>  + IS_ERR_OR_NULL(x)
>    || ...
>  - || x == NULL
> 
> thought that it should be applied in two ways, giving an error about a
> double transformation of the IS_ERR call.
> 
> Could you reproduce the example that caused problems?

Hm, I can reproduce it anymore, even with my original patch, must have been
caused by some other error I had in the semantic patch at that time.

- Lars

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Cocci] [PATCH 2/2] coccinelle: Add patch for replacing open-coded IS_ERR_OR_NULL
  2011-12-23 12:19         ` Lars-Peter Clausen
@ 2011-12-23 12:26           ` Julia Lawall
  0 siblings, 0 replies; 8+ messages in thread
From: Julia Lawall @ 2011-12-23 12:26 UTC (permalink / raw)
  To: Lars-Peter Clausen
  Cc: Gilles Muller, Nicolas Palix, linux-kernel, cocci, mmarek



On Fri, 23 Dec 2011, Lars-Peter Clausen wrote:

> On 12/21/2011 01:10 PM, Julia Lawall wrote:
>> On Wed, 21 Dec 2011, Lars-Peter Clausen wrote:
>>
>>> On 12/20/2011 11:24 PM, Julia Lawall wrote:
>>>> For this one, I made quite a number of changes, some of which required
>>>> fixing a bug in Coccinelle...  I will try to release the bug fix
>>>> shortly. In general, though, I have added ... between the two tests.  I
>>>> also got rid of the focus on ifs in the org and report rules.
>>>>
>>>
>>> Ok, thanks. Was the removing of the ifs in related to the Coccinelle
>>> bug? I
>>> always get an error if I start a match with a conditional.
>>
>> Not at all.  The bug was that a patterm like:
>>
>>  @depends on patch@
>>  expression x;
>>  @@
>>  - IS_ERR(x)
>>  + IS_ERR_OR_NULL(x)
>>    || ...
>>  - || x == NULL
>>
>> thought that it should be applied in two ways, giving an error about a
>> double transformation of the IS_ERR call.
>>
>> Could you reproduce the example that caused problems?
>
> Hm, I can reproduce it anymore, even with my original patch, must have been
> caused by some other error I had in the semantic patch at that time.

OK, should do you want to resubmit the semantic patch that I sent you? 
The version of Coccinelle you have does not perfectly support it, but it 
should just cause failures on a few files.  The problem is only with the 
patch case, when there is the possibility to mak two calls to 
IS_ERR_OR_NULL in a single test expression, which doesn't happen 
very often.

julia

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2011-12-23 12:26 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-12-19 13:24 [PATCH 1/2] coccinelle: Add patch for replacing open-coded PTR_RET Lars-Peter Clausen
2011-12-19 13:24 ` [PATCH 2/2] coccinelle: Add patch for replacing open-coded IS_ERR_OR_NULL Lars-Peter Clausen
2011-12-20 22:24   ` [Cocci] " Julia Lawall
2011-12-21 11:49     ` Lars-Peter Clausen
2011-12-21 12:10       ` Julia Lawall
2011-12-23 12:19         ` Lars-Peter Clausen
2011-12-23 12:26           ` Julia Lawall
2011-12-20 22:19 ` [Cocci] [PATCH 1/2] coccinelle: Add patch for replacing open-coded PTR_RET Julia Lawall

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.