aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2019-01-29 00:47:25 +0000
committerJonathan Wakely <redi@gcc.gnu.org>2019-01-29 00:47:25 +0000
commit1f48525ded40b968792c4dfd9a7614c3e88129a4 (patch)
treefc2d3d9bb79c9d94adc789855952b43be97fb435 /gcc
parenta097ba8abb6ca31638a5ad3f1f49a21c1b772839 (diff)
downloadgcc-1f48525ded40b968792c4dfd9a7614c3e88129a4.zip
gcc-1f48525ded40b968792c4dfd9a7614c3e88129a4.tar.gz
gcc-1f48525ded40b968792c4dfd9a7614c3e88129a4.tar.bz2
Ensure pool resources always use normal mode vector
The __pool_resource::_M_unpooled member was declared with type std::vector, which means that the type depends on whether debug mode is active or not. Because the non-inline definitions in src/c++17/memory_resource.cc are never compiled with debug mode, the type declared in the header doesn't match the type in the library definitions, leading to undefined behaviour. The solution is to ensure the header always uses the non-debug vector, even when debug mode is active. To make this easier a new alias template is defined: _GLIBCXX_STD_C::pmr::vector. * include/std/memory_resource (__pool_resource::_M_unpooled): Use normal mode vector, even for debug mode. * include/std/vector [_GLIBCXX_DEBUG] (_GLIBCXX_STD_C::pmr::vector): Define alias template for normal mode vector. From-SVN: r268354
Diffstat (limited to 'gcc')
0 files changed, 0 insertions, 0 deletions