From 88642e905803dd43b98d796f2aa1edd59169758c Mon Sep 17 00:00:00 2001 From: redi Date: Fri, 22 Jun 2018 13:05:20 +0000 Subject: [PATCH] PR libstdc++/86280 fix undefined left shift on 32-bit targets PR libstdc++/86280 * include/experimental/memory_resource (__resource_adaptor_common::_AlignMgr::_M_token_size): Use type large enough for result of left shift. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@261888 138bc75d-0d04-0410-961f-82ee72b054a4 --- libstdc++-v3/ChangeLog | 5 +++++ libstdc++-v3/include/experimental/memory_resource | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 1c4e467bbbe9..cf644b45b179 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,10 @@ 2018-06-22 Jonathan Wakely + PR libstdc++/86280 + * include/experimental/memory_resource + (__resource_adaptor_common::_AlignMgr::_M_token_size): Use type large + enough for result of left shift. + PR libstdc++/86138 * include/bits/basic_string.tcc: [__cplusplus > 201402 && !_GLIBCXX_USE_CXX11_ABI] diff --git a/libstdc++-v3/include/experimental/memory_resource b/libstdc++-v3/include/experimental/memory_resource index 8f5a8df14c95..1965fdcfe73b 100644 --- a/libstdc++-v3/include/experimental/memory_resource +++ b/libstdc++-v3/include/experimental/memory_resource @@ -326,7 +326,7 @@ namespace pmr { return 1; if (_M_align <= (1ul << (sizeof(short) * __CHAR_BIT__))) return sizeof(short); - if (_M_align <= (1ul << (sizeof(int) * __CHAR_BIT__))) + if (_M_align <= (1ull << (sizeof(int) * __CHAR_BIT__))) return sizeof(int); return sizeof(char*); } -- 2.47.2