diff --git a/backends/functional/smtlib_rosette.cc b/backends/functional/smtlib_rosette.cc index ff47f5706..ea14da854 100644 --- a/backends/functional/smtlib_rosette.cc +++ b/backends/functional/smtlib_rosette.cc @@ -75,15 +75,16 @@ class SmtrStruct { }; idict field_names; vector fields; - SmtrScope &scope; + SmtrScope &global_scope; + SmtrScope local_scope; public: std::string name; - SmtrStruct(std::string name, SmtrScope &scope) : scope(scope), name(name) {} + SmtrStruct(std::string name, SmtrScope &scope) : global_scope(scope), local_scope(), name(name) {} void insert(IdString field_name, SmtrSort sort) { field_names(field_name); - auto base_name = scope.unique_name("\\" + RTLIL::unescape_id(field_name)); + auto base_name = local_scope.unique_name(field_name); auto accessor = name + "-" + base_name; - scope.reserve(accessor); + global_scope.reserve(accessor); fields.emplace_back(Field{sort, accessor, base_name}); } void write_definition(SExprWriter &w) {