On Thu, 12 Sep 2019, Christoph Böhmwalder wrote: > On Thu, Sep 12, 2019 at 01:31:52PM +0200, Julia Lawall wrote: > > > > Sorry, it's not clear to me what you want to do. Do you want to verify > > that there is a const before renaming the parameter? Could you do > > > > const unsigned > > -a > > +b > > > > ? > > > > julia > > I'll try and outline what I'm actually trying to do. > > Here's what I have: > > int drbd_submit_peer_request(struct drbd_device *device, > struct drbd_peer_request *peer_req, > const unsigned op, const unsigned op_flags, > const int fault_type) > { > // ... > } > > This is what I want: > > int drbd_submit_peer_request(struct drbd_device *device, > struct drbd_peer_request *peer_req, > const unsigned rw, > const int fault_type) > { > // ... > } > > And this is my cocci patch: > > @@ > identifier op, op_flags; > struct bio *b; > @@ > drbd_submit_peer_request(... > - , const unsigned op, const unsigned op_flags > + , const unsigned rw > ,...) > { > ... > } > > This gives an error: > > minus: parse error: > File "drbd/drbd-kernel-compat/cocci/req_write__yes_present.cocci", line 35, column 22, charpos = 548 > around = 'op', > whole content = - , const unsigned op, const unsigned op_flags > > > Doing it without the consts yields this: > > int drbd_submit_peer_request(struct drbd_device *device, > - struct drbd_peer_request *peer_req, > - const unsigned op, const unsigned op_flags, > + struct drbd_peer_request *peer_reqconst, > + unsigned rw, > const int fault_type) > { > > Notice the stray "const" behind "peer_req". > > So -- to answer your question -- my priority here is to get the code > compiling; I don't actually care about any of the consts. Best case > scenario would be to have it remove whether or not the consts are there > and always add the new parameter with a const. How about the following? @@ identifier op, op_flags; struct bio *b; type T; @@ T drbd_submit_peer_request(..., - unsigned op + unsigned rw , - unsigned op_flags, ...) { ... } It doesn't add a const on rw, though. And it doesn't allow using the const to figure out where to match. I will have to look into why the consts aren't being parsed properly. julia