On 2013-01-22 19:21, Stephan wrote:
Hi,

I just spent the last 5 hours trying to find the cause of a segmentation
fault. It was clearly my mistake that I did all those tests with dmd's
optimization switch on ("-O").
When I disabled optimization, i.e. removed the "-O" flag, the code runs
perfectly.

I can't exclude an actual bug in my code with 100 percent certainty. But
given various segmentation faults that I have seen with dmd previous to
version 2.061, and given the fact that I am not using any pointers or
other memory-unsafe constructs, I am inclined to believe that this
segfault is actually caused by dmd itself, or at least dmd's
optimization. Please correct me if you think that is extremely unlikely.

I would say that if using the -O flag the code behaves differently from without using the flag it's always a bug.

The -O flag should never change the semantic meaning of the code. It should only make it faster.

--
/Jacob Carlborg

Reply via email to