Re: gnu optimization bug
Abhishek wrote:
Recently i found that my C++ program was running fine with no
optimization and giving segmentation fault with error code 139 when
compiled with optimization level 2. I searched somewhat but never find
any systematic solution. In my recent attempt, i found the problem with
the optimization tool itself, which iam discussing here.
I found that the problem of segmentation fault was boiled down to a
statement of the form A = B, with no pointer or array usage, so forget
about the illegal memory write problems. When i removed this statement,
the problem disappers, so concluded that the segmentation fault problem
is with this statement. A careful study revealed that this statement
was redundant because A was never used in the program after this
statement. So i inserted one more statement after the above statement
which is "X = A", where X is a dummy variable and in that case the
problem again disappears. Inserting this new statement has made my
initial statement no more redundant.
I think the optimization tool had detected that A = B is a redundant
statement but failed to do its work. So its a clear bug in the
optimization tool itself.
Without any more code, it's hard to say if you're right. What type are A and
B? Could you provide a minimal, but complete program that shows the
behavior. Sometimes, a program crash happens in a place different from the
one that contains the error.
As others already mentioned: A g++ bug report would have to go to a
different place than here, but here, we could tell you if it's actually a
bug in the compiler or an error in your code. However, for that, you'd have
to show some code.