Trunk: macos leal optimization displacement error

This code on macos-15 x86_64

function GetVK(Character: Char): Integer;
begin
  case Character of
    '0'..'9': Result := VK_0 + Ord(Character) - Ord('0');
    'a'..'z': Result := VK_A + Ord(Character) - Ord('a');
    'A'..'Z': Result := VK_A + Ord(Character) - Ord('A');
  end;
end;

In trunk with optimization level 2+ produces:

leal    4294967264(%rdx),%eax

Which macos will error with:

error: displacement 4294967264 is not within [-2147483648, 2147483647]

Edited by Olly