Launchpad has imported 10 comments from the remote bug at https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62258.
If you reply to an imported comment from within Launchpad, your comment will be sent to the remote bug automatically. Read more about Launchpad's inter-bugtracker facilities at https://help.launchpad.net/InterBugTracking. ------------------------------------------------------------------------ On 2014-08-25T18:06:12+00:00 Dmitry Prokoptsev wrote: After using std::rethrow_exception() (and catching the exception), all subsequent calls to std::uncaught_exception() return `true', which is obviously not the way it was meant to work. A simple test case is attached. Reply at: https://bugs.launchpad.net/ubuntu/+source/gcc-4.9/+bug/1439451/comments/0 ------------------------------------------------------------------------ On 2014-08-25T18:06:50+00:00 Dmitry Prokoptsev wrote: Created attachment 33394 A simple test case. Reply at: https://bugs.launchpad.net/ubuntu/+source/gcc-4.9/+bug/1439451/comments/1 ------------------------------------------------------------------------ On 2014-08-25T18:11:32+00:00 Dmitry Prokoptsev wrote: Created attachment 33395 Proposed patch I believe the problem is that std::rethrow_exception() does not update `__cxa_eh_globals::uncaughtExceptions' (which remains zero), while __cxa_begin_catch() decrements it to -1. A proposed patch is attached. Reply at: https://bugs.launchpad.net/ubuntu/+source/gcc-4.9/+bug/1439451/comments/2 ------------------------------------------------------------------------ On 2014-08-29T10:27:28+00:00 Deniz Bahadir wrote: I can confirm this bug. It even occurs with GCC 4.8.2 (on Ubuntu 14.04). Reply at: https://bugs.launchpad.net/ubuntu/+source/gcc-4.9/+bug/1439451/comments/3 ------------------------------------------------------------------------ On 2014-10-07T08:57:06+00:00 Ai-azuma wrote: PR61643 shares the root cause with this PR. The behavior of the test case in PR61643 completely agrees with the analysis in Comment 2, and the proposed patch makes the test case in PR61643 work properly. I confirmed that this bug was reproduced with 4.8.4 20140925, 4.9.2 20140924 and 5.0.0 20140928. Reply at: https://bugs.launchpad.net/ubuntu/+source/gcc-4.9/+bug/1439451/comments/4 ------------------------------------------------------------------------ On 2014-10-07T09:02:11+00:00 Ai-azuma wrote: *** Bug 61643 has been marked as a duplicate of this bug. *** Reply at: https://bugs.launchpad.net/ubuntu/+source/gcc-4.9/+bug/1439451/comments/5 ------------------------------------------------------------------------ On 2015-01-20T10:12:24+00:00 P-bartosiewi wrote: I can also confirm this bug (I have a test case with std::async and future, but it internally uses std::rethrow_exception). Known to work: gcc 4.6.3, 4.7.2, 4.8.1 Known to fail: gcc 4.8.2, 4.9.2, clang 3.5.0 So this is a regression. Reply at: https://bugs.launchpad.net/ubuntu/+source/gcc-4.9/+bug/1439451/comments/6 ------------------------------------------------------------------------ On 2015-01-26T16:29:44+00:00 Public-n wrote: Confirmed using GCC 5.0.0 20150125 built from source (see below) and 4.7.2 (Debian 4.7.2-5; Debian Wheezy). Tested using the test case in comment 1. Output: $ g++-5-20150125 -std=c++11 -o test62258 test62258.c -Wall && ./test62258 test62258: test62258.c:11: int main(): Assertion `!std::uncaught_exception()' failed. Aborted $ g++-5-20150125 -v Using built-in specs. COLLECT_GCC=g++-5-20150125 COLLECT_LTO_WRAPPER=/home/user/gcc50/bin/../libexec/gcc/x86_64-unknown-linux-gnu/5.0.0/lto-wrapper Target: x86_64-unknown-linux-gnu Configured with: /home/user/gcc50build/src-gcc-5-20150125/configure --target=x86_64-unknown-linux-gnu --prefix=/home/user/gcc50build/target-x86_64-unknown-linux-gnu --program-suffix=-5-20150125 --disable-nls --enable-c99 --enable-checking=release --enable-gnu-unique-object --enable-gold --enable-languages=c,c++ --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-linker-build-id --enable-long-long --enable-multiarch --enable-multilib --enable-shared --enable-targets=all --enable-threads=posix --with-system-zlib --with-tune=generic Thread model: posix gcc version 5.0.0 20150125 (experimental) (GCC) Reply at: https://bugs.launchpad.net/ubuntu/+source/gcc-4.9/+bug/1439451/comments/7 ------------------------------------------------------------------------ On 2015-02-06T10:04:11+00:00 M-kwiatkowski wrote: Created attachment 34683 Workaround code For all programmers out there that may encounter this bug, I attach a workaround code. Linking your program with it should make rethrow_exception() usable even if the library on the system is buggy. Reply at: https://bugs.launchpad.net/ubuntu/+source/gcc-4.9/+bug/1439451/comments/8 ------------------------------------------------------------------------ On 2015-02-06T19:50:39+00:00 Public-n wrote: A few days ago I submitted a patch for this issue based on Dmitry's patch. It seems as if we can get it in after the 5.0 release. https://gcc.gnu.org/ml/gcc-patches/2015-02/msg00027.html Reply at: https://bugs.launchpad.net/ubuntu/+source/gcc-4.9/+bug/1439451/comments/9 ** Changed in: gcc Status: Unknown => Confirmed ** Changed in: gcc Importance: Unknown => Medium -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1439451 Title: std::uncaught_exception() returns true after catching an exception thrown with std::rethrow_exception To manage notifications about this bug go to: https://bugs.launchpad.net/gcc/+bug/1439451/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs