aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2020-08-10 12:02:18 +0100
committerGiuliano Belinassi <giuliano.belinassi@usp.br>2020-08-17 15:07:54 -0300
commitdcabf1582dfa1b858a827ed4040cce5a6dcd27c9 (patch)
tree9979bdccf578221e388e5187c765233f48fae56f
parentcee4e70e77efe0c85ee27232223b706d983ad3e2 (diff)
downloadgcc-dcabf1582dfa1b858a827ed4040cce5a6dcd27c9.zip
gcc-dcabf1582dfa1b858a827ed4040cce5a6dcd27c9.tar.gz
gcc-dcabf1582dfa1b858a827ed4040cce5a6dcd27c9.tar.bz2
libstdc++: Check __cpp_exceptions in basic_string::reserve()
If exceptions are disabled then reallocating could abort, so ignore shrink-to-fit requests. libstdc++-v3/ChangeLog: * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI=0] (basic_string::reserve()): Do nothing if exceptions are not enabled.
-rw-r--r--libstdc++-v3/include/bits/basic_string.tcc2
1 files changed, 2 insertions, 0 deletions
diff --git a/libstdc++-v3/include/bits/basic_string.tcc b/libstdc++-v3/include/bits/basic_string.tcc
index a64b63a..95d2fdb 100644
--- a/libstdc++-v3/include/bits/basic_string.tcc
+++ b/libstdc++-v3/include/bits/basic_string.tcc
@@ -1179,6 +1179,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
basic_string<_CharT, _Traits, _Alloc>::
reserve()
{
+#if __cpp_exceptions
if (length() < capacity() || _M_rep()->_M_is_shared())
try
{
@@ -1191,6 +1192,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{ throw; }
catch (...)
{ /* swallow the exception */ }
+#endif
}
template<typename _CharT, typename _Traits, typename _Alloc>