aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2011-11-17 17:38:48 -0800
committerRichard Henderson <rth@gcc.gnu.org>2011-11-17 17:38:48 -0800
commit1d794721acc6b43208bfea764034835172805ebd (patch)
tree460de928ad8835c73b0b0ec931affd2de8918b7a
parenta98f3def7e7182d0a4831fc98b4472a785723a83 (diff)
downloadgcc-1d794721acc6b43208bfea764034835172805ebd.zip
gcc-1d794721acc6b43208bfea764034835172805ebd.tar.gz
gcc-1d794721acc6b43208bfea764034835172805ebd.tar.bz2
re PR libstdc++/51181 (libstdc++.so __sync_sub_and_fetch_4 linkage error causing many test suite failures on m68k-linux)
PR libstdc++/51181 * libsupc++/eh_tm.cc (free_any_cxa_exception): Protect the use of __sync_sub_and_fetch with _GLIBCXX_ATOMIC_BUILTINS_4. From-SVN: r181465
-rw-r--r--libstdc++-v3/ChangeLog6
-rw-r--r--libstdc++-v3/libsupc++/eh_tm.cc2
2 files changed, 8 insertions, 0 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index a2b4ceb..c52db38 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,9 @@
+2011-11-17 Richard Henderson <rth@redhat.com>
+
+ PR libstdc++/51181
+ * libsupc++/eh_tm.cc (free_any_cxa_exception): Protect the use
+ of __sync_sub_and_fetch with _GLIBCXX_ATOMIC_BUILTINS_4.
+
2011-11-18 Jonathan Wakely <jwakely.gcc@gmail.com>
* testsuite/30_threads/thread/native_handle/typesizes.cc: Do not run
diff --git a/libstdc++-v3/libsupc++/eh_tm.cc b/libstdc++-v3/libsupc++/eh_tm.cc
index f5815a1..a646102 100644
--- a/libstdc++-v3/libsupc++/eh_tm.cc
+++ b/libstdc++-v3/libsupc++/eh_tm.cc
@@ -45,7 +45,9 @@ free_any_cxa_exception (_Unwind_Exception *eo)
__cxa_free_dependent_exception (dep);
}
+#ifdef _GLIBCXX_ATOMIC_BUILTINS_4
if (__sync_sub_and_fetch (&h->referenceCount, 1) == 0)
+#endif
__cxa_free_exception (h + 1);
}