> cat bug.cc #include <string> void f() { throw 1; }
struct Foo { Foo(const std::string& s); std::string s; }; Foo::Foo(const std::string& s_) : s(s_) { f(); } int main() { try { Foo foo(""); } catch (...) { } } > g++ -O2 -fsched2-use-superblocks bug.cc > ./a.out Aborted (core dumped) (This program should exit normally.) Backtrace: #0 0x00007fd3d9e9b065 in raise () from /lib/libc.so.6 #1 0x00007fd3d9e9e153 in abort () from /lib/libc.so.6 #2 0x00007fd3da1cdb41 in _Unwind_Resume () from /lib/libgcc_s.so.1 #3 0x0000000000400a02 in Foo (this=0x7fffe2b81eb0, s...@0x4377) at bug.cc:16 ... I'm using SVN revision 148947 on linux x86_64. -- Summary: wrong-code with -fsched2-use-superblocks and exceptions Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: wouter dot vermaelen at scarlet dot be http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40552