VerifyError in method with Word variable

Hi,
Using the latest stable I get a lot of java.lang.VerifyError on methods using Word, probably other unsigned types too:

Fatal exception of type java.lang.VerifyError on thread 0001 ()
!> Message: (class: consoleapplication17/__Global, method: convertLASColor signature: (S)I) Accessing value from uninitialized register 1
Exception in thread "main" java.lang.VerifyError: (class: consoleapplication17/__Global, method: convertLASColor signature: (S)I) Accessing value from uninitialized register 1

A simple test case :

namespace consoleapplication17;

uses
  remobjects.elements.rtl.*,
  java.util;

interface

type
  Program = class
  public
    class method Main(args: array of String): Int32;
  end;

implementation

   function convertLASColor(
      const _r : Word
    ) : Cardinal ;
  var
    r : Word ;
  begin
    r := _r ; // < - problem

    exit r ;
  end ;

  class method Program.Main(args: array of String): Int32;
    begin
      var c : Cardinal := convertLASColor(1);
      writeLn(c);
    end;

end.

Other our functions having local Word (or other unsigned types) variables also fails to run when the assignment occurs. More local variables, more register errors:

...Register 7 contains wrong type

Changing them to Integer works, but it’s not a solution (multi-platform code) and Word worked before.

Please fix.

Probably same issue as in Java Byte interpretation on 10.0.0.2595?

Usually we do.

Thanks, logged as bugs://85608

bugs://85608 got closed with status fixed.

1 Like