The follwing program compiled by: ../gcc/xgcc -B../gcc tess_div.c gives me: $ ./a.out 6341068292483973050 the program: #include <stdio.h> int main(void) { typedef int myi128 __attribute__ ((mode(TI))); myi128 x=0; myi128 y=32; long z=x/y; printf("%ld\n", z); return 0; } AFAIKS the arguments to `__divti3' function are passed incorrectly. The problem affects GNU Pascal. Namely, gpc uses `bitsizetype' to do adress calculation for packed arrays. On 64-bit targets `bitsizetype' is done with 128-bit precision. Since on x86_64 such arithmetic does not work (with 3.3.3 backend) it makes packed arrays unusable ont that target.
Does this worh with 3.4.x or 4.0.x?
Works fine with gcc-3.4.4 or gcc-4.0.0. IIRC gcc-3.4.0 also worked. gcc-3.3.6 still fails.
Closing as fixed for 3.4.0 as 3.3.x branch is no longer maintained.