diff mbox

add missing export for std::regex_error

Message ID 20140509193935.GL10556@redhat.com
State New
Headers show

Commit Message

Jonathan Wakely May 9, 2014, 7:39 p.m. UTC
Jakub noticed I got the exports wrong for std::regex_error.

Tested x86_64-linux, committed to trunk. Not planning to fix this on
the 4.9 branch.
diff mbox

Patch

commit 33024aacc31cc7a1fdaba934952150fdc3db7e3f
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Fri May 9 13:51:39 2014 +0100

    	* config/abi/pre/gnu.ver (GLIBCXX_3.4.20): Correct regex_error export.
    	(GLIBCXX_3.4.21): Export base object constructor for regex_error.
    	* acinclude.m4 (libtool_VERSION): Bump.
    	* configure: Regenerate.
    	* testsuite/util/testsuite_abi.cc: Add GLIBCXX_3.4.21 version.
    	* testsuite/28_regex/regex_error/base.cc: New.

diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4
index cbce2ae..55427cd 100644
--- a/libstdc++-v3/acinclude.m4
+++ b/libstdc++-v3/acinclude.m4
@@ -3353,7 +3353,7 @@  changequote([,])dnl
 fi
 
 # For libtool versioning info, format is CURRENT:REVISION:AGE
-libtool_VERSION=6:20:0
+libtool_VERSION=6:21:0
 
 # Everything parsed; figure out what files and settings to use.
 case $enable_symvers in
diff --git a/libstdc++-v3/config/abi/pre/gnu.ver b/libstdc++-v3/config/abi/pre/gnu.ver
index 1625048..ed7a93f 100644
--- a/libstdc++-v3/config/abi/pre/gnu.ver
+++ b/libstdc++-v3/config/abi/pre/gnu.ver
@@ -1363,10 +1363,18 @@  GLIBCXX_3.4.20 {
     _ZSt24__throw_out_of_range_fmtPKcz;
 
     # std::regex_error::regex_error(std::regex_constants::error_type)
-    _ZNSt11regex_errorC[01]ENSt15regex_constants10error_typeE;
+    _ZNSt11regex_errorC1ENSt15regex_constants10error_typeE;
 
 } GLIBCXX_3.4.19;
 
+GLIBCXX_3.4.21 {
+
+    # std::regex_error::regex_error(std::regex_constants::error_type)
+    _ZNSt11regex_errorC2ENSt15regex_constants10error_typeE;
+
+} GLIBCXX_3.4.20;
+
+
 # Symbols in the support library (libsupc++) have their own tag.
 CXXABI_1.3 {
 
diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
index c481db6..925ff7c 100755
--- a/libstdc++-v3/configure
+++ b/libstdc++-v3/configure
@@ -77918,7 +77918,7 @@  $as_echo "$as_me: WARNING: === Symbol versioning will be disabled." >&2;}
 fi
 
 # For libtool versioning info, format is CURRENT:REVISION:AGE
-libtool_VERSION=6:20:0
+libtool_VERSION=6:21:0
 
 # Everything parsed; figure out what files and settings to use.
 case $enable_symvers in
diff --git a/libstdc++-v3/testsuite/28_regex/regex_error/base.cc b/libstdc++-v3/testsuite/28_regex/regex_error/base.cc
new file mode 100644
index 0000000..a7318af
--- /dev/null
+++ b/libstdc++-v3/testsuite/28_regex/regex_error/base.cc
@@ -0,0 +1,32 @@ 
+// Copyright (C) 2014 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
+// <http://www.gnu.org/licenses/>.
+
+// 28.6 [re.badexp]
+
+// { dg-options "-std=c++11" }
+
+#include <regex>
+
+struct re : std::regex_error
+{
+  re() : regex_error(std::regex_constants::error_stack) { }
+};
+
+int main()
+{
+  re r __attribute__((unused));
+}
diff --git a/libstdc++-v3/testsuite/util/testsuite_abi.cc b/libstdc++-v3/testsuite/util/testsuite_abi.cc
index 39635cb..0699114 100644
--- a/libstdc++-v3/testsuite/util/testsuite_abi.cc
+++ b/libstdc++-v3/testsuite/util/testsuite_abi.cc
@@ -200,6 +200,7 @@  check_version(symbol& test, bool added)
       known_versions.push_back("GLIBCXX_3.4.18");
       known_versions.push_back("GLIBCXX_3.4.19");
       known_versions.push_back("GLIBCXX_3.4.20");
+      known_versions.push_back("GLIBCXX_3.4.21");
       known_versions.push_back("CXXABI_1.3");
       known_versions.push_back("CXXABI_LDBL_1.3");
       known_versions.push_back("CXXABI_1.3.1");
@@ -227,7 +228,7 @@  check_version(symbol& test, bool added)
 	test.version_status = symbol::incompatible;
 
       // Check that added symbols are added in the latest pre-release version.
-      bool latestp = (test.version_name == "GLIBCXX_3.4.20"
+      bool latestp = (test.version_name == "GLIBCXX_3.4.21"
 		     || test.version_name == "CXXABI_1.3.9"
 		     || test.version_name == "CXXABI_TM_1");
       if (added && !latestp)