Stdio.Buffer()->add_int32(0xffffffff) does not work on 32-bit systems
Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=7712
Reported by Per Cederqvist ceder@lysator.liu.se
The add_int32() method of Stdio.Buffer is supposed to accept any 32-bit number, in the range 0-0xffffffff. When Pike is compiled on a 64-bit system this works. But on a 32-bit i686 Debian 8 it fails:
Bad argument 1 to add_int32(). Expected int.
Unknown program: add_int32(4294967295)
-:1:
_static_modules._Stdio()->Buffer(0 bytes, read=[..-1] data=[0..-1] free=[0
..224] allocated)->add_int32(4294967295)
/home/minibuilder/buffer-fun.pike:6: /main()->main()
Test program:
#!/usr/bin/env pike8
int main()
{
Stdio.Buffer buffer = Stdio.Buffer();
buffer->add_int32(0xffffffff);
werror("%O\n", buffer->read());
return 0;
}
Tested with the current head of the 8.0 branch from the Git repo.