File tree Expand file tree Collapse file tree 4 files changed +9
-4
lines changed Expand file tree Collapse file tree 4 files changed +9
-4
lines changed Original file line number Diff line number Diff line change @@ -685,7 +685,7 @@ enum_list : enum_element
685685enum_element: IDENTIFIER_Token
686686 {
687687 $$=$1 ;
688- PARSER.module -> enum_set .insert (stack_expr ($1 ).id_string ());
688+ PARSER.parse_tree . enum_set .insert (stack_expr ($1 ).id_string ());
689689
690690 exprt expr (ID_smv_identifier);
691691 expr.set (ID_identifier, stack_expr ($1 ).id ());
@@ -942,6 +942,7 @@ identifier : IDENTIFIER_Token
942942
943943variable_identifier: complex_identifier
944944 {
945+ // Could be a variable, or an enum
945946 auto id = merge_complex_identifier (stack_expr ($1 ));
946947 init ($$, ID_smv_identifier);
947948 stack_expr ($$).set (ID_identifier, id);
Original file line number Diff line number Diff line change @@ -23,6 +23,7 @@ Function: smv_parse_treet::swap
2323void smv_parse_treet::swap (smv_parse_treet &smv_parse_tree)
2424{
2525 smv_parse_tree.modules .swap (modules);
26+ smv_parse_tree.enum_set .swap (enum_set);
2627}
2728
2829/* ******************************************************************\
Original file line number Diff line number Diff line change @@ -287,9 +287,11 @@ class smv_parse_treet
287287 }
288288
289289 mc_varst vars;
290- enum_sett enum_set;
291290 };
292-
291+
292+ // enums are global
293+ enum_sett enum_set;
294+
293295 typedef std::unordered_map<irep_idt, modulet, irep_id_hash> modulest;
294296
295297 modulest modules;
Original file line number Diff line number Diff line change @@ -1895,7 +1895,8 @@ void smv_typecheckt::convert(exprt &expr)
18951895 identifier.find (" ::" ) == std::string::npos, " conversion is done once" );
18961896
18971897 // enum or variable?
1898- if (modulep->enum_set .find (identifier) == modulep->enum_set .end ())
1898+ if (
1899+ smv_parse_tree.enum_set .find (identifier) == smv_parse_tree.enum_set .end ())
18991900 {
19001901 std::string id = module + " ::var::" + identifier;
19011902
You can’t perform that action at this time.
0 commit comments