@@ -30,7 +30,7 @@ void pass_wrap_global_stmts_into_program(Allocator &al,
3030 bool call_main_program = unit.n_items > 0 ;
3131 pass_wrap_global_stmts_into_function (al, unit, pass_options);
3232 pass_wrap_global_syms_into_module (al, unit, pass_options);
33- if ( call_main_program ) {
33+ if ( call_main_program && !pass_options. disable_main ) {
3434 // Call `_lpython_main_program` function
3535 ASR::Module_t *mod = ASR::down_cast<ASR::Module_t>(
3636 unit.m_global_scope ->get_symbol (" _global_symbols" ));
@@ -55,15 +55,17 @@ void pass_wrap_global_stmts_into_program(Allocator &al,
5555 prog_dep.push_back (al, s2c (al, " _global_symbols" ));
5656 }
5757
58- ASR::asr_t *prog = ASR::make_Program_t (
59- al, unit.base .base .loc ,
60- /* a_symtab */ current_scope,
61- /* a_name */ s2c (al, prog_name),
62- prog_dep.p ,
63- prog_dep.n ,
64- /* a_body */ prog_body.p ,
65- /* n_body */ prog_body.n );
66- unit.m_global_scope ->add_symbol (prog_name, ASR::down_cast<ASR::symbol_t >(prog));
58+ if ( !pass_options.disable_main ) {
59+ ASR::asr_t *prog = ASR::make_Program_t (
60+ al, unit.base .base .loc ,
61+ /* a_symtab */ current_scope,
62+ /* a_name */ s2c (al, prog_name),
63+ prog_dep.p ,
64+ prog_dep.n ,
65+ /* a_body */ prog_body.p ,
66+ /* n_body */ prog_body.n );
67+ unit.m_global_scope ->add_symbol (prog_name, ASR::down_cast<ASR::symbol_t >(prog));
68+ }
6769}
6870
6971} // namespace LCompilers
0 commit comments