This last is then followed by
* You have to verify the compiler,
* You have to verify the hardware,
* You have to verify that there wasn't an error in loading the code,
* You have to use radiation-hardened hardware
and so on.
They miss the point!
Bugs in your code are way more likely than any of the other problems, and they matter.
I've generally given up, but at least it's nice to see the attitude here not being instantly shouted down.
As might have been predicted the bug that Raymond was talking about wasn't caused by the optimizer at all (http://esr.ibiblio.org/?p=1705#comment-248328).
It's depressing to think that when your code works, it's almost always your fault.
And they were right - my code had bugs in it.
So I recrafted my code and effectively, informally proved it to be correct. Then I sent it in again and got a formal acknowlegement that I had, indeed, found a bug.
Over the next 2 years I found 5 bugs in three different compilers, but in the first few cases I spent ages crafting my examples to prove the problem wasn't my code. Then it dawned on me, why not right the code to be correct in the first place, then I wouldn't have to re-write it when I found bugs that might be mine, and might be someone elses.
My productivity improved dramatically, and I was hooked.
Obviously, this false, but until you are smart enough you'll never know when the compiler is wrong.
I'm not disagreeing with your premise, but I find my attitude can be different depending on the scope of the project. For example, if I'm working on a smaller project, I find I can focus on the overall quality and strive for "no bugs." But on a larger project (often behind schedule and over-budget, most often not because of the dev team, directly), there are lots of edge cases that get ignored, at least during the first release cycle.