[Bug rtl-optimization/106568] -freorder-blocks-algorithm appears to causes a crash in stable code, no way to disable it

noloader at gmail dot com gcc-bugzilla@gcc.gnu.org
Mon Aug 8 21:52:03 GMT 2022


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106568

--- Comment #5 from Jeffrey Walton <noloader at gmail dot com> ---
(In reply to Andrew Pinski from comment #3)
> Though there might be an EH issue but there has not been an EH issue for a
> long time .

This is an interesting observation.

The stack trace shows frame #0 is in pthread_kill_thread (or similar). But up
in our program, around frame #4 or #5, gdb is identifying the line with a catch
(CryptoPP::Exception& ). CryptoPP::Exception is the library's base class
exception, so it should catch everything the library throws.

This is the line gdb faults
(https://github.com/weidai11/cryptopp/blob/master/test.cpp#L442) :

    catch(const Exception &e)  // 442
    {
        std::cout << "\nException caught: " << e.what() << std::endl;
        return -1;
    }

which makes no sense to me.

And the program does not take the exception path. Instead it segfaults.


More information about the Gcc-bugs mailing list