Skip to content

Internal Compiler Error: Unhandled exception with tuple return type #457

Open
@Aasthaengg

Description

@Aasthaengg

Here's my sample program -

def modf(x: f64) -> tuple[f64, i32]:
    """
    Return fractional and integral parts of `x` as a pair.
    """
    return (x - int(x), int(x))

res: tuple[f64, i32]
res = modf(3.14)

It raises the following error -

Internal Compiler Error: Unhandled exception
BFD: DWARF error: section .debug_info is larger than its filesize! (0x5b4757 vs 0x429c68)
BFD: DWARF error: section .debug_info is larger than its filesize! (0x5b4757 vs 0x429c68)
Traceback (most recent call last):
  Binary file "/home/kn1ght/lpython/lpython_personal/src/bin/lpython", in _start()
  Binary file "/lib/x86_64-linux-gnu/libc.so.6", in __libc_start_main()
  Binary file "/lib/x86_64-linux-gnu/libc.so.6", in __libc_init_first()
  File "/home/kn1ght/lpython/lpython_personal/src/bin/lpython.cpp", line 833, in ??
    err = compile_python_to_object_file(arg_file, tmp_o, runtime_library_dir, compiler_options, time_report);
  File "/home/kn1ght/lpython/lpython_personal/src/bin/lpython.cpp", line 332, in ??
    res = fe.get_llvm3(*asr, diagnostics);
  File "/home/kn1ght/lpython/lpython_personal/src/lpython/python_evaluator.cpp", line 57, in LFortran::PythonCompiler::get_llvm3(LFortran::ASR::TranslationUnit_t&, LFortran::diag::Diagnostics&)
    run_fn);
  File "/home/kn1ght/lpython/lpython_personal/src/libasr/codegen/asr_to_llvm.cpp", line 4446, 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/kn1ght/lpython/lpython_personal/src/libasr/../libasr/asr.h", line 2898, 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/kn1ght/lpython/lpython_personal/src/libasr/../libasr/asr.h", line 2876, in ??
    case asrType::unit: { v.visit_unit((const unit_t &)x); return; }
  File "/home/kn1ght/lpython/lpython_personal/src/libasr/../libasr/asr.h", line 2899, 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/kn1ght/lpython/lpython_personal/src/libasr/../libasr/asr.h", line 2711, in ??
    case unitType::TranslationUnit: { v.visit_TranslationUnit((const TranslationUnit_t &)x); return; }
  File "/home/kn1ght/lpython/lpython_personal/src/libasr/codegen/asr_to_llvm.cpp", line 914, in LFortran::ASRToLLVMVisitor::visit_TranslationUnit(LFortran::ASR::TranslationUnit_t const&)
    visit_Function(*ASR::down_cast<ASR::Function_t>(item.second));
  File "/home/kn1ght/lpython/lpython_personal/src/libasr/codegen/asr_to_llvm.cpp", line 1999, in LFortran::ASRToLLVMVisitor::visit_Function(LFortran::ASR::Function_t const&)
    instantiate_function(x);
  File "/home/kn1ght/lpython/lpython_personal/src/libasr/codegen/asr_to_llvm.cpp", line 2100, in LFortran::ASRToLLVMVisitor::instantiate_function(LFortran::ASR::Function_t const&)
    llvm::FunctionType* function_type = get_function_type(x);
AssertFailed: false

The program runs fine when run with python using PYTHONPATH=src/runtime/ltypes python test.py

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions