Closed
Description
Here is an example with an error message
$ cat test_1.py
from ltypes import i32
from test_2 import VAR
def test_var(var: i32):
print(var)
def t():
test_var(VAR)
t()
$ cat test_2.py
from ltypes import i32
VAR: i32 = 1
$ python test_1.py
1
$ lpython test_1.py
Internal Compiler Error: Unhandled exception
Traceback (most recent call last):
Binary file "/home/thirumalai/Open_Source/lpython/src/bin/lpython", in _start()
Binary file "/lib/x86_64-linux-gnu/libc.so.6", in __libc_start_main()
File "/home/thirumalai/Open_Source/lpython/src/bin/lpython.cpp", line 755, in ??
err = compile_python_to_object_file(arg_file, tmp_o, runtime_library_dir, compiler_options);
File "/home/thirumalai/Open_Source/lpython/src/bin/lpython.cpp", line 271, in ??
res = fe.get_llvm3(*asr, diagnostics);
File "/home/thirumalai/Open_Source/lpython/src/lpython/python_evaluator.cpp", line 57, in LFortran::PythonCompiler::get_llvm3(LFortran::ASR::TranslationUnit_t&, LFortran::diag::Diagnostics&)
run_fn);
File "/home/thirumalai/Open_Source/lpython/src/libasr/codegen/asr_to_llvm.cpp", line 4185, in LFortran::asr_to_llvm(LFortran::ASR::TranslationUnit_t&, LFortran::diag::Diagnostics&, llvm::LLVMContext&, Allocator&, LFortran::Platform, bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
v.visit_asr((ASR::asr_t&)asr);
File "/home/thirumalai/Open_Source/lpython/src/libasr/../libasr/asr.h", line 2395, in LFortran::ASR::BaseVisitor<LFortran::ASRToLLVMVisitor>::visit_asr(LFortran::ASR::asr_t const&)
void visit_asr(const asr_t &b) { visit_asr_t(b, self()); }
File "/home/thirumalai/Open_Source/lpython/src/libasr/../libasr/asr.h", line 2373, in ??
case asrType::unit: { v.visit_unit((const unit_t &)x); return; }
File "/home/thirumalai/Open_Source/lpython/src/libasr/../libasr/asr.h", line 2396, in LFortran::ASR::BaseVisitor<LFortran::ASRToLLVMVisitor>::visit_unit(LFortran::ASR::unit_t const&)
void visit_unit(const unit_t &b) { visit_unit_t(b, self()); }
File "/home/thirumalai/Open_Source/lpython/src/libasr/../libasr/asr.h", line 2231, in ??
case unitType::TranslationUnit: { v.visit_TranslationUnit((const TranslationUnit_t &)x); return; }
File "/home/thirumalai/Open_Source/lpython/src/libasr/codegen/asr_to_llvm.cpp", line 921, in LFortran::ASRToLLVMVisitor::visit_TranslationUnit(LFortran::ASR::TranslationUnit_t const&)
visit_symbol(*item.second);
File "/home/thirumalai/Open_Source/lpython/src/libasr/../libasr/asr.h", line 2398, in LFortran::ASR::BaseVisitor<LFortran::ASRToLLVMVisitor>::visit_symbol(LFortran::ASR::symbol_t const&)
void visit_symbol(const symbol_t &b) { visit_symbol_t(b, self()); }
File "/home/thirumalai/Open_Source/lpython/src/libasr/../libasr/asr.h", line 2241, in ??
case symbolType::Subroutine: { v.visit_Subroutine((const Subroutine_t &)x); return; }
File "/home/thirumalai/Open_Source/lpython/src/libasr/codegen/asr_to_llvm.cpp", line 1991, in LFortran::ASRToLLVMVisitor::visit_Subroutine(LFortran::ASR::Subroutine_t const&)
generate_subroutine(x);
File "/home/thirumalai/Open_Source/lpython/src/libasr/codegen/asr_to_llvm.cpp", line 2063, in LFortran::ASRToLLVMVisitor::generate_subroutine(LFortran::ASR::Subroutine_t const&)
this->visit_stmt(*x.m_body[i]);
File "/home/thirumalai/Open_Source/lpython/src/libasr/../libasr/asr.h", line 2410, in LFortran::ASR::BaseVisitor<LFortran::ASRToLLVMVisitor>::visit_stmt(LFortran::ASR::stmt_t const&)
void visit_stmt(const stmt_t &b) { visit_stmt_t(b, self()); }
File "/home/thirumalai/Open_Source/lpython/src/libasr/../libasr/asr.h", line 2284, in ??
case stmtType::SubroutineCall: { v.visit_SubroutineCall((const SubroutineCall_t &)x); return; }
File "/home/thirumalai/Open_Source/lpython/src/libasr/codegen/asr_to_llvm.cpp", line 3994, in LFortran::ASRToLLVMVisitor::visit_SubroutineCall(LFortran::ASR::SubroutineCall_t const&)
std::vector<llvm::Value *> args2 = convert_call_args(x, m_name);
AssertFailed: finder != nested_globals.end()
Metadata
Metadata
Assignees
Labels
No labels