From 30f7c08d96556c4fdbe772240a085f5d8c2393a4 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Fri, 19 Oct 2018 14:46:24 +0100 Subject: [PATCH] Fix compilation error with _GLIBCXX_PARALLEL * include/bits/regex_executor.tcc (_Backref_matcher::_M_apply): Use _GLIBCXX_STD_A to refer to normal mode algorithms. * testsuite/28_regex/headers/regex/parallel_mode.cc: New test. * testsuite/28_regex/headers/regex/std_c++0x_neg.cc: Remove empty whitespace. From-SVN: r265314 --- libstdc++-v3/ChangeLog | 6 +++++ libstdc++-v3/include/bits/regex_executor.tcc | 4 ++-- .../28_regex/headers/regex/parallel_mode.cc | 22 +++++++++++++++++++ .../28_regex/headers/regex/std_c++0x_neg.cc | 3 --- 4 files changed, 30 insertions(+), 5 deletions(-) create mode 100644 libstdc++-v3/testsuite/28_regex/headers/regex/parallel_mode.cc diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index ea4928f5a78..c307c1ff7ab 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,11 @@ 2018-10-19 Jonathan Wakely + * include/bits/regex_executor.tcc (_Backref_matcher::_M_apply): Use + _GLIBCXX_STD_A to refer to normal mode algorithms. + * testsuite/28_regex/headers/regex/parallel_mode.cc: New test. + * testsuite/28_regex/headers/regex/std_c++0x_neg.cc: Remove empty + whitespace. + * include/debug/map.h (map::erase(iterator)): Add abi-tag so that C++11 version mangles differently from incompatible C++98 version. * include/debug/multimap.h (multimap::erase(iterator)): Likewise. diff --git a/libstdc++-v3/include/bits/regex_executor.tcc b/libstdc++-v3/include/bits/regex_executor.tcc index b3238894f5d..68f1213cb64 100644 --- a/libstdc++-v3/include/bits/regex_executor.tcc +++ b/libstdc++-v3/include/bits/regex_executor.tcc @@ -366,11 +366,11 @@ namespace __detail _BiIter __actual_end) { if (!_M_icase) - return std::__equal4(__expected_begin, __expected_end, + return _GLIBCXX_STD_A::__equal4(__expected_begin, __expected_end, __actual_begin, __actual_end); typedef std::ctype<_CharT> __ctype_type; const auto& __fctyp = use_facet<__ctype_type>(_M_traits.getloc()); - return std::__equal4(__expected_begin, __expected_end, + return _GLIBCXX_STD_A::__equal4(__expected_begin, __expected_end, __actual_begin, __actual_end, [this, &__fctyp](_CharT __lhs, _CharT __rhs) { diff --git a/libstdc++-v3/testsuite/28_regex/headers/regex/parallel_mode.cc b/libstdc++-v3/testsuite/28_regex/headers/regex/parallel_mode.cc new file mode 100644 index 00000000000..d32df55c966 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/headers/regex/parallel_mode.cc @@ -0,0 +1,22 @@ +// Copyright (C) 2018 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// . + +// { dg-do compile { target c++11 } } +// { dg-require-normal-mode "" } + +#define _GLIBCXX_PARALLEL +#include diff --git a/libstdc++-v3/testsuite/28_regex/headers/regex/std_c++0x_neg.cc b/libstdc++-v3/testsuite/28_regex/headers/regex/std_c++0x_neg.cc index 44aa140eeea..85899aab0dd 100644 --- a/libstdc++-v3/testsuite/28_regex/headers/regex/std_c++0x_neg.cc +++ b/libstdc++-v3/testsuite/28_regex/headers/regex/std_c++0x_neg.cc @@ -21,6 +21,3 @@ #include // { dg-error "ISO C.. 2011" "" { target *-*-* } 32 } - - -