Yes, I guess I was a little too optimistic about __int128_t. The corresponding unsigned is __uint128_t and the combination with unsigned does not work (even in gcc). So I guess I will have to drop that for now.
I tried the branch with clang 3.2. It compiles fine and bignums seem ok. Since that version supports __int128, I also tried the versions without 128 bit integers (GEN_OF1(64)) and those also seem ok.
Which clang version are you using?
arne
On Tue, 1 Jan 2013, Jonas Walld�n @ Pike developers forum wrote:
Ah, this was rather a case where "unsigned __int128_t" wasn't a valid type. Commenting out the INT128 support gives a complete build with no unexpected warnings but math is still broken:
Pike v7.9 release 5 running Hilfe v3.5 (Incremental Pike Frontend)
-0x80000000;
(1) Result: 2147483648