From 7770bd7e9a889532b1970f372f3566fe86b13f09 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Fri, 20 Dec 2019 17:10:18 +0000 Subject: [PATCH] libstdc++: Add inline to maybe-constexpr functions (PR 92927) Originally these functions were always inline. I changed them in r277342 to be always constexpr, then in r277588 changed them to be constexpr for C++14, but I didn't restore the 'inline' for C++11. That leads to linker errors when libstdc++.so is built unoptimized, because those functions don't get instantiated in src/c++11/string-inst.o PR libstdc++/92927 * include/bits/alloc_traits.h (__alloc_on_copy, __alloc_on_move) (__alloc_on_swap): Add inline specifier. From-SVN: r279656 --- libstdc++-v3/ChangeLog | 6 ++++++ libstdc++-v3/include/bits/alloc_traits.h | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 81f7bb9b853..663312da1e3 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,9 @@ +2019-12-20 Jonathan Wakely + + PR libstdc++/92927 + * include/bits/alloc_traits.h (__alloc_on_copy, __alloc_on_move) + (__alloc_on_swap): Add inline specifier. + 2019-12-20 Jerome Lambourg * acinclude.m4 (GLIBCXX_CHECK_SETRLIMIT): Test with AC_LANG_CPLUSPLUS. diff --git a/libstdc++-v3/include/bits/alloc_traits.h b/libstdc++-v3/include/bits/alloc_traits.h index 142b23fe00f..812cff0fabe 100644 --- a/libstdc++-v3/include/bits/alloc_traits.h +++ b/libstdc++-v3/include/bits/alloc_traits.h @@ -567,7 +567,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION #endif template - _GLIBCXX14_CONSTEXPR void + _GLIBCXX14_CONSTEXPR inline void __alloc_on_copy(_Alloc& __one, const _Alloc& __two) { typedef allocator_traits<_Alloc> __traits; @@ -599,7 +599,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION #endif template - _GLIBCXX14_CONSTEXPR void + _GLIBCXX14_CONSTEXPR inline void __alloc_on_move(_Alloc& __one, _Alloc& __two) { typedef allocator_traits<_Alloc> __traits; @@ -626,7 +626,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION #endif template - _GLIBCXX14_CONSTEXPR void + _GLIBCXX14_CONSTEXPR inline void __alloc_on_swap(_Alloc& __one, _Alloc& __two) { typedef allocator_traits<_Alloc> __traits; -- 2.30.2