> The whole thing boils down to:
> 
> \begin{code}
> module Main (main) where
> main :: IO ()
> main = if 1*2 == 0 then putStrLn "GHC(GCC 2.95) can't multiply, eh?"
>                    else putStrLn "not reached"
> \end{code}
> 
> Strange, isn't it?

I've tracked this down as far as PrelNum.hs in GHC's library.  That is,
gcc-2.95 is either miscompiling this module, or we're making some bogus
assumption in the C code.  I haven't narrowed down the exact instruction
sequence which is wrong yet.

More info as I find it.  In the meantime, avoid gcc 2.95 if you want
anything to work.

Cheers,
        Simon

Reply via email to