diff --git a/src/kernel_services/ast_queries/cil.ml b/src/kernel_services/ast_queries/cil.ml index c5e01b7134df44a227c6d801e2ab9e1e6f2c0da0..6ce13b9bca6b0e30e6afd22fc88a9f2901006c7f 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 52e6869da0887ef55a31547b8483fa061a1024d4..a672348b232fd2f454a12b89f3cafdb68939911c 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}};