From 7cedf7724bdb67d0ae995638525609918eee5303 Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Mon, 11 Mar 2019 19:18:41 +0100 Subject: [PATCH] [kernel] limit the suffix's length when uniquifying variables names --- src/kernel_services/ast_queries/cil.ml | 4 +++- tests/syntax/oracle/rename.res.oracle | 17 +++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/kernel_services/ast_queries/cil.ml b/src/kernel_services/ast_queries/cil.ml index c5e01b7134d..6ce13b9bca6 100644 --- a/src/kernel_services/ast_queries/cil.ml +++ b/src/kernel_services/ast_queries/cil.ml @@ -7444,7 +7444,9 @@ let isCompleteType ?allowZeroSizeArrays t = let undolist = ref [] in (* Process one local variable *) let processLocal (v: varinfo) = - let lookupname = v.vname in + (* start from original name to avoid putting another _0 in case + of conflicts. *) + let lookupname = v.vorig_name in let data = CurrentLoc.get () in let newname, oldloc = Alpha.newAlphaName diff --git a/tests/syntax/oracle/rename.res.oracle b/tests/syntax/oracle/rename.res.oracle index 52e6869da08..a672348b232 100644 --- a/tests/syntax/oracle/rename.res.oracle +++ b/tests/syntax/oracle/rename.res.oracle @@ -73,6 +73,23 @@ void f4(int *j_0_1) return; } +void f5(void) +{ + int y_0_1; + int y_0_0; + return; +} + +int y_0; +void f6(void) +{ + int y_2_0; + int y_2; + return; +} + +int y_1; + struct not_anon s = {.__anonCompField1 = 0}; struct anon a = {.__anonCompField1 = {.inner_i = 0}}; -- GitLab