diff --git a/src/kernel_services/visitors/cabsvisit.ml b/src/kernel_services/visitors/cabsvisit.ml index 84bd662c1cce474679e3f7ecde20e19ef3e8bb5b..2237d0abe0a4a9b6e410c3f699d96613d437dc9d 100644 --- a/src/kernel_services/visitors/cabsvisit.ml +++ b/src/kernel_services/visitors/cabsvisit.ml @@ -193,14 +193,17 @@ and childrenDeclType isfundef vis dt = let al' = mapNoCopy (childrenAttribute vis) al in let dt1' = visitCabsDeclType vis isfundef dt1 in if al' != al || dt1' != dt1 then PTR(al', dt1') else dt - | PROTO (dt1, snl,_, b) -> + | PROTO (dt1, snl, gsnl, b) -> (* Do not propagate isfundef further *) let dt1' = visitCabsDeclType vis false dt1 in let _ = vis#vEnterScope () in let snl' = mapNoCopy (childrenSingleName vis NVar) snl in + let gsnl' = mapNoCopy (childrenSingleName vis NVar) gsnl in (* Exit the scope only if not in a function definition *) let _ = if not isfundef then vis#vExitScope () in - if dt1' != dt1 || snl' != snl then PROTO(dt1', snl',[] , b) else dt + if dt1' != dt1 || snl' != snl || gsnl' != gsnl then + PROTO(dt1', snl', gsnl' , b) + else dt and childrenNameGroup vis (kind: nameKind) ((s, nl) as input) =