Skip to content

Returning the result of a void function throws a java error #399

@dplassgit

Description

@dplassgit

This should just be a typecheck error not a codegen error

Source:

RST4: proc {
}

CALL: proc {
  return RST4()
}
java.lang.IllegalArgumentException: Cannot get name by size for 0
        at com.plasstech.lang.d2.codegen.x64.IntRegister.nameBySize(IntRegister.java:70)
        at com.plasstech.lang.d2.codegen.x64.IntRegister.nameByType(IntRegister.java:49)
        at com.plasstech.lang.d2.codegen.x64.Resolver.resolve(Resolver.java:155)
        at com.plasstech.lang.d2.codegen.x64.Resolver.resolveFully(Resolver.java:87)
        at com.plasstech.lang.d2.codegen.x64.Resolver.mov(Resolver.java:383)
        at com.plasstech.lang.d2.codegen.x64.Resolver.mov(Resolver.java:373)
        at com.plasstech.lang.d2.codegen.x64.CallCodeGenerator.visit(CallCodeGenerator.java:164)
        at com.plasstech.lang.d2.codegen.il.Call.accept(Call.java:92)
        at com.plasstech.lang.d2.codegen.x64.NasmCodeGenerator.execute(NasmCodeGenerator.java:179)
        at com.plasstech.lang.d2.D2Compiler.generateAsmAndLink(D2Compiler.java:74)
        at com.plasstech.lang.d2.D2Compiler.main(D2Compiler.java:38)
Latest opcode: D_temp_686 = RST4()
java.lang.IllegalArgumentException error: Cannot get name by size for 0

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions