File tree 1 file changed +20
-8
lines changed 1 file changed +20
-8
lines changed Original file line number Diff line number Diff line change @@ -147,15 +147,27 @@ void SymbolTable::move_symbols_from_global_scope(Allocator &/*al*/,
147
147
for (size_t i = 0 ; i < fn->n_dependencies ; i++ ) {
148
148
ASR::symbol_t *s = fn->m_symtab ->get_symbol (
149
149
fn->m_dependencies [i]);
150
- ASR::symbol_t *block_s = nullptr ;
151
150
if (s == nullptr ) {
152
- block_s = fn->m_symtab ->get_symbol (" block" );
153
- }
154
- while (s == nullptr && block_s != nullptr ) {
155
- ASR::Block_t *b = ASR::down_cast<ASR::Block_t>(block_s);
156
- s = b->m_symtab ->get_symbol (fn->m_dependencies [i]);
157
- if (s == nullptr ) {
158
- block_s = b->m_symtab ->get_symbol (" block" );
151
+ std::string block_name = " block" ;
152
+ ASR::symbol_t *block_s = fn->m_symtab ->get_symbol (block_name);
153
+ int32_t j = 1 ;
154
+ while (block_s != nullptr ) {
155
+ while (block_s != nullptr ) {
156
+ ASR::Block_t *b = ASR::down_cast<ASR::Block_t>(block_s);
157
+ s = b->m_symtab ->get_symbol (fn->m_dependencies [i]);
158
+ if (s == nullptr ) {
159
+ block_s = b->m_symtab ->get_symbol (" block" );
160
+ } else {
161
+ break ;
162
+ }
163
+ }
164
+ if (s == nullptr ) {
165
+ block_s = fn->m_symtab ->get_symbol (block_name +
166
+ std::to_string (j));
167
+ j++;
168
+ } else {
169
+ break ;
170
+ }
159
171
}
160
172
}
161
173
if (s == nullptr ) {
You can’t perform that action at this time.
0 commit comments