diff --git a/compiler2/ttcn3/Statement.cc b/compiler2/ttcn3/Statement.cc index fcabbcc30851f86a9cc898a56db04ae2e42fd3da..b788b6e3f0add2ceac16e796133b5ca46617d436 100644 --- a/compiler2/ttcn3/Statement.cc +++ b/compiler2/ttcn3/Statement.cc @@ -6587,7 +6587,8 @@ error: str = mputstr(str, expr.preamble); } str = mputprintf(str, "switch(%s.get_selection()) {\n", expr.expr); - const char* type_name = select_union.expr->get_expr_governor_last()->get_genname_value(select_union.expr->get_my_scope()).c_str(); + string type_name_str = select_union.expr->get_expr_governor_last()->get_genname_value(select_union.expr->get_my_scope()); + const char* type_name = type_name_str.c_str(); char* loc = NULL; loc = select_union.expr->update_location_object(loc); str = select_union.sus->generate_code(str, def_glob_vars, src_glob_vars, type_name, loc); @@ -6963,7 +6964,8 @@ error: str = mputstr(str, expr.preamble); } str = mputprintf(str, "switch(%s.get_selection()) {\n", expr.expr); - const char* type_name = select_union.expr->get_expr_governor_last()->get_genname_value(select_union.expr->get_my_scope()).c_str(); + string type_name_str = select_union.expr->get_expr_governor_last()->get_genname_value(select_union.expr->get_my_scope()); + const char* type_name = type_name_str.c_str(); char* loc = NULL; loc = select_union.expr->update_location_object(loc); str = select_union.sus->generate_code(str, ilt->get_out_def_glob_vars(),