Bug#552314: gcc 4.3.4 even worse

2010-05-05 Thread Wesley W. Terpstra
The 'use -fPIC' hack I've been using to avoid this problem doesn't help with the newest gcc in sid. < https://buildd.debian.org/fetch.cgi?pkg=mlton&arch=mips&ver=20100504~svn-r7459&stamp=1273006902&file=log&as=raw > gcc -std=gnu99 -c -I/usr/lib/mlton/targets/self/include \ -I/usr/

Bug#552314: Branch instructions still broken

2010-02-06 Thread Wesley W. Terpstra
reopen 552314 thanks Well, whatever was changed in the latest gcc makes gcc stop complaining that a branch is out of range. However, the problem is NOT fixed. Instead of the compiler aborting, it now creates broken object code that will segfault on whatever code previously triggered this behaviour

Bug#327351: gcc-4.0: Gcc miscompiles libc on hppa - breaks rounding

2005-09-09 Thread Wesley W. Terpstra
retitle 327351 libc rounding is broken on HPPAreassign  327351 libc6tags 327351 +patchthanksOn Sep 9, 2005, at 3:25 PM, Wesley W. Terpstra wrote:On Sep 9, 2005, at 3:11 PM, Falk Hueffner wrote:"Wesley W. Terpstra" <[EMAIL PROTECTED]> writes:  __asm__ ("fstd %%fr0,0(%1)&qu

Bug#327351: gcc-4.0: Gcc miscompiles libc on hppa - breaks rounding

2005-09-09 Thread Wesley W. Terpstra
On Sep 9, 2005, at 3:11 PM, Falk Hueffner wrote:"Wesley W. Terpstra" <[EMAIL PROTECTED]> writes:  __asm__ ("fstd %%fr0,0(%1)" : "=m" (*sw) : "r" (sw));  sw[0] &= ~FE_DOWNWARD;  sw[0] |= round;  __asm__ ("fldd 0(%0),%%fr0" : : "r

Bug#327351: Testcase

2005-09-09 Thread Wesley W. Terpstra
Here's a small test-case: #include #include #include int cvt(float f) { return (int)rint(f); } int main() { printf("%d %d %d %d\n", cvt(23.7), cvt(23.23), cvt(-23.7), cvt(-23.23)); fesetround(FE_TONEAREST); printf("%d %d %d %d\n", cvt(23.7), cvt(23.23), cvt(-23.7),

Bug#327351: gcc-4.0: Gcc miscompiles libc on hppa - breaks rounding

2005-09-09 Thread Wesley W. Terpstra
Package: gcc-4.0 Version: 4.0.1-6 Severity: important When compiling the fesetround function (which controls the processor rounding mode), gcc-4.0 incorrectly optimizes away the code!!! Here's the C code in question: __asm__ ("fstd %%fr0,0(%1)" : "=m" (*sw) : "r" (sw)); sw[0] &= ~FE_DOWNWARD;