Am 13.05.2021 um 21:33 schrieb Hans-Bernhard Bröker:
Am 13.05.2021 um 10:57 schrieb Thomas Wolff:

The crash vanishes after removing a few lines from a conditional (if block) where the condition is false.

A conditions that's always false, or one that's false during the execution of a particular test case?
False during execution.

This smells like wrong calculation of a relative jump (Intel "short jump") by the optimizer.

If it were that simple, the problematic change should stand out like the proverbial sore thumb when comparing assembly listings of the two cases.  Does it?
Not really. As the problem only occurs with -O2, I'd need to check the result of gcc -S -O2, but with -O2, code is stirred so much it's hardly recognizable. The conditional jump to skip the (dynamically false) conditional is even a jump backwards in this case...

--
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

Reply via email to