From 2f1c5a532eb326fceb243b4cde69ba6243d37fe7 Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Thu, 3 Oct 2019 18:07:03 +0200 Subject: [PATCH] [Kernel] CabsVisit does not erase ghost parameters anymore --- src/kernel_services/visitors/cabsvisit.ml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/kernel_services/visitors/cabsvisit.ml b/src/kernel_services/visitors/cabsvisit.ml index 84bd662c1cc..2237d0abe0a 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) = -- GitLab