miles at assyrian.org.uk
Fri Jul 30 09:09:15 PDT 2010
I thought you might like an update on my crazy bug from hell.
What's /actually/ happening, it turns out, is that the test fails when
compiled with -O0 or -O1, and passes with -O2 or above. When I tried to
get the .s file to diff manually, I didn't pass in a -O flag at all, and
so got the default level of optimisation (-O2, I'm guessing...). When I
diffed the .s file from the broken compiler against the .s file from the
good compiler, I found the % discrepancy, and assumed that was the
problem. But it wasn't, because either .s would have worked, not having
been compiled with -O1.
Aaron's suggestion of getting the .s file using cc -S rather than
invoking the inner compiler directly was crucial to my uncovering this.
So, thanks very much, Aaron!
Now, to work out what's /really/ going wrong...
You say this as if it were a gentle afternoon's exercise, rather than
a lifetime of quiet torture.
-- Simon Cozens
More information about the Edinburgh-pm