From f5460595a488ce9c131815016d0c89dc0d17ca14 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Mon, 18 Jan 2016 11:24:20 +0000 Subject: [PATCH] Fix libstdc++ build with -fno-exceptions PR libstdc++/69340 * src/c++11/cow-stdexcept.cc (_txnal_cow_string_C1_for_exceptions): Use macros for exception handling and fix unused parameter warning. From-SVN: r232502 --- libstdc++-v3/ChangeLog | 6 ++++++ libstdc++-v3/src/c++11/cow-stdexcept.cc | 9 +++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 48600ad..74ef4f6 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,9 @@ +2016-01-18 Jonathan Wakely + + PR libstdc++/69340 + * src/c++11/cow-stdexcept.cc (_txnal_cow_string_C1_for_exceptions): + Use macros for exception handling and fix unused parameter warning. + 2016-01-17 John David Anglin PR libstdc++/68734 diff --git a/libstdc++-v3/src/c++11/cow-stdexcept.cc b/libstdc++-v3/src/c++11/cow-stdexcept.cc index e2d7e76..eddb36b 100644 --- a/libstdc++-v3/src/c++11/cow-stdexcept.cc +++ b/libstdc++-v3/src/c++11/cow-stdexcept.cc @@ -232,7 +232,8 @@ void _ITM_addUserCommitAction(void (*)(void *), uint64_t, void *) { }; // that also notifies the TM runtime about allocations belonging to this // exception. void -_txnal_cow_string_C1_for_exceptions(void* that, const char* s, void *exc) +_txnal_cow_string_C1_for_exceptions(void* that, const char* s, + void *exc __attribute__((unused))) { typedef std::basic_string bs_type; bs_type *bs = (bs_type*) that; @@ -249,17 +250,17 @@ _txnal_cow_string_C1_for_exceptions(void* that, const char* s, void *exc) // TODO Once this is supported, link the following allocation to this // exception: void *prev = _ITM_setAssociatedException(exc); bs_type::_Rep *rep; - try + __try { rep = (bs_type::_Rep*) _ZGTtnaX (len + sizeof (bs_type::_Rep)); } - catch (...) + __catch (...) { // Pop the association with this exception. // TODO Once this is supported, link the following allocation to this // exception: _ITM_setAssociatedException(prev); // We do not need to instrument a rethrow. - throw; + __throw_exception_again; } // Pop the association with this exception. // TODO Once this is supported, link the following allocation to this -- 2.7.4