On Sun, 2016-09-11 at 15:05 +0200, Julia Lawall wrote:
Constify local structures.
Thanks Julia.
A few suggestions & questions:
Perhaps the script should go into scripts/coccinelle/ so that future cases could be caught by the robot and commit message referenced by the patch instances.
Can you please compile the files modified using the appropriate defconfig/allyesconfig and show the movement from data to const by using $ size <object>.new/old and include that in the changelogs (maybe next time)?
Is it possible for a rule to trace the instances where an address of a struct or struct member is taken by locally defined and declared function call where the callee does not modify any dereferenced object?
ie:
struct foo { int bar; char *baz; };
struct foo qux[] = { { 1, "description 1" }, { 2, "dewcription 2" }, [ n, "etc" ]..., };
void message(struct foo *msg) { printk("%d %s\n", msg->bar, msg->baz); }
where some code uses
message(qux[index]);
So could a coccinelle script change:
struct foo qux[] = { to const struct foo quz[] = {
and
void message(struct foo *msg) to void message(const struct foo *msg)