Update pretty printers for GTS15
Resolves: RHEL-82506
This commit is contained in:
parent
8efe38163b
commit
5b970b4c33
15
gcc.spec
15
gcc.spec
@ -5,7 +5,7 @@
|
|||||||
%global gcc_major 8
|
%global gcc_major 8
|
||||||
# Note, gcc_release must be integer, if you want to add suffixes to
|
# Note, gcc_release must be integer, if you want to add suffixes to
|
||||||
# %%{release}, append them after %%{gcc_release} on Release: line.
|
# %%{release}, append them after %%{gcc_release} on Release: line.
|
||||||
%global gcc_release 27
|
%global gcc_release 28
|
||||||
%global nvptx_tools_gitrev c28050f60193b3b95a18866a96f03334e874e78f
|
%global nvptx_tools_gitrev c28050f60193b3b95a18866a96f03334e874e78f
|
||||||
%global nvptx_newlib_gitrev aadc8eb0ec43b7cd0dd2dfb484bae63c8b05ef24
|
%global nvptx_newlib_gitrev aadc8eb0ec43b7cd0dd2dfb484bae63c8b05ef24
|
||||||
%global _unpackaged_files_terminate_build 0
|
%global _unpackaged_files_terminate_build 0
|
||||||
@ -312,11 +312,11 @@ Patch50: gcc8-pr100508.patch
|
|||||||
Patch51: gcc8-pr118976.patch
|
Patch51: gcc8-pr118976.patch
|
||||||
|
|
||||||
# Any patches changing libstdc++-v3/python and its tests should go after this.
|
# Any patches changing libstdc++-v3/python and its tests should go after this.
|
||||||
Patch1000: gcc8-libstdc++-prettyprinter-update-14.patch
|
Patch1000: gcc8-libstdc++-prettyprinter-update-15.patch
|
||||||
Patch1001: gcc8-libstdc++-prettyprinter-update-14-tests.patch
|
Patch1001: gcc8-libstdc++-prettyprinter-update-15-tests.patch
|
||||||
Patch1002: gcc8-libstdc++-prettyprinter-update-14-tests-48362.patch
|
Patch1002: gcc8-libstdc++-prettyprinter-update-15-tests-48362.patch
|
||||||
Patch1003: gcc8-libstdc++-prettyprinter-update-14-tests-cxx11.patch
|
Patch1003: gcc8-libstdc++-prettyprinter-update-15-tests-cxx11.patch
|
||||||
Patch1004: gcc8-libstdc++-prettyprinter-update-14-tests-cxx17.patch
|
Patch1004: gcc8-libstdc++-prettyprinter-update-15-tests-cxx17.patch
|
||||||
|
|
||||||
Patch2000: nvptx-tools-no-ptxas.patch
|
Patch2000: nvptx-tools-no-ptxas.patch
|
||||||
Patch2001: nvptx-tools-build.patch
|
Patch2001: nvptx-tools-build.patch
|
||||||
@ -3356,6 +3356,9 @@ fi
|
|||||||
%{ANNOBIN_GCC_PLUGIN_DIR}/gcc-annobin.so.0.0.0
|
%{ANNOBIN_GCC_PLUGIN_DIR}/gcc-annobin.so.0.0.0
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Jun 23 2025 Siddhesh Poyarekar <siddhesh@redhat.com> 8.5.0-28
|
||||||
|
- Sync libstdc++ pretty printers to latest GTS (RHEL-82506).
|
||||||
|
|
||||||
* Thu May 29 2025 Joseph Myers <josmyers@redhat.com> - 8.5.0-27
|
* Thu May 29 2025 Joseph Myers <josmyers@redhat.com> - 8.5.0-27
|
||||||
- Fix folding of BIT_NOT_EXPR for POLY_INT_CST (PR 118976, RHEL-90240)
|
- Fix folding of BIT_NOT_EXPR for POLY_INT_CST (PR 118976, RHEL-90240)
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ index 72c66d3b785..98e21e963fe 100644
|
|||||||
+// { dg-options "-g -O0 -std=gnu++17" }
|
+// { dg-options "-g -O0 -std=gnu++17" }
|
||||||
// { dg-do run { target c++17 } }
|
// { dg-do run { target c++17 } }
|
||||||
|
|
||||||
// Copyright (C) 2014-2024 Free Software Foundation, Inc.
|
// Copyright (C) 2014-2025 Free Software Foundation, Inc.
|
||||||
@@ -18,7 +18,6 @@
|
@@ -18,7 +18,6 @@
|
||||||
// with this library; see the file COPYING3. If not see
|
// with this library; see the file COPYING3. If not see
|
||||||
// <http://www.gnu.org/licenses/>.
|
// <http://www.gnu.org/licenses/>.
|
@ -6,7 +6,7 @@
|
|||||||
5 files changed, 146 insertions(+), 78 deletions(-)
|
5 files changed, 146 insertions(+), 78 deletions(-)
|
||||||
|
|
||||||
diff --git a/libstdc++-v3/testsuite/libstdc++-prettyprinters/compat.cc b/libstdc++-v3/testsuite/libstdc++-prettyprinters/compat.cc
|
diff --git a/libstdc++-v3/testsuite/libstdc++-prettyprinters/compat.cc b/libstdc++-v3/testsuite/libstdc++-prettyprinters/compat.cc
|
||||||
index 81e0ce7213f..604a6f6415b 100644
|
index 81e0ce7213f..2ef5979834f 100644
|
||||||
--- a/libstdc++-v3/testsuite/libstdc++-prettyprinters/compat.cc
|
--- a/libstdc++-v3/testsuite/libstdc++-prettyprinters/compat.cc
|
||||||
+++ b/libstdc++-v3/testsuite/libstdc++-prettyprinters/compat.cc
|
+++ b/libstdc++-v3/testsuite/libstdc++-prettyprinters/compat.cc
|
||||||
@@ -1,8 +1,7 @@
|
@@ -1,8 +1,7 @@
|
||||||
@ -15,7 +15,7 @@ index 81e0ce7213f..604a6f6415b 100644
|
|||||||
-// { dg-skip-if "" { *-*-* } { "-D_GLIBCXX_PROFILE" } }
|
-// { dg-skip-if "" { *-*-* } { "-D_GLIBCXX_PROFILE" } }
|
||||||
|
|
||||||
-// Copyright (C) 2014-2019 Free Software Foundation, Inc.
|
-// Copyright (C) 2014-2019 Free Software Foundation, Inc.
|
||||||
+// Copyright (C) 2014-2024 Free Software Foundation, Inc.
|
+// Copyright (C) 2014-2025 Free Software Foundation, Inc.
|
||||||
//
|
//
|
||||||
// This file is part of the GNU ISO C++ Library. This library is free
|
// 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
|
// software; you can redistribute it and/or modify it under the
|
||||||
@ -38,7 +38,7 @@ index 81e0ce7213f..604a6f6415b 100644
|
|||||||
__builtin_puts("");
|
__builtin_puts("");
|
||||||
return 0; // Mark SPOT
|
return 0; // Mark SPOT
|
||||||
diff --git a/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc b/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc
|
diff --git a/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc b/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc
|
||||||
index 9a90d8d91db..2f75d12703c 100644
|
index 9a90d8d91db..23f6d97ddd4 100644
|
||||||
--- a/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc
|
--- a/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc
|
||||||
+++ b/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc
|
+++ b/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc
|
||||||
@@ -1,8 +1,7 @@
|
@@ -1,8 +1,7 @@
|
||||||
@ -47,7 +47,7 @@ index 9a90d8d91db..2f75d12703c 100644
|
|||||||
-// { dg-skip-if "" { *-*-* } { "-D_GLIBCXX_PROFILE" } }
|
-// { dg-skip-if "" { *-*-* } { "-D_GLIBCXX_PROFILE" } }
|
||||||
|
|
||||||
-// Copyright (C) 2011-2018 Free Software Foundation, Inc.
|
-// Copyright (C) 2011-2018 Free Software Foundation, Inc.
|
||||||
+// Copyright (C) 2011-2024 Free Software Foundation, Inc.
|
+// Copyright (C) 2011-2025 Free Software Foundation, Inc.
|
||||||
//
|
//
|
||||||
// This file is part of the GNU ISO C++ Library. This library is free
|
// 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
|
// software; you can redistribute it and/or modify it under the
|
||||||
@ -251,7 +251,7 @@ index 9a90d8d91db..2f75d12703c 100644
|
|||||||
use(efl);
|
use(efl);
|
||||||
use(fl);
|
use(fl);
|
||||||
diff --git a/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx17.cc b/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx17.cc
|
diff --git a/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx17.cc b/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx17.cc
|
||||||
index 0c7cb4c9bb6..c8b70622bef 100644
|
index 0c7cb4c9bb6..6dd2b60c0a5 100644
|
||||||
--- a/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx17.cc
|
--- a/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx17.cc
|
||||||
+++ b/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx17.cc
|
+++ b/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx17.cc
|
||||||
@@ -1,8 +1,7 @@
|
@@ -1,8 +1,7 @@
|
||||||
@ -261,7 +261,7 @@ index 0c7cb4c9bb6..c8b70622bef 100644
|
|||||||
-// { dg-skip-if "" { *-*-* } { "-D_GLIBCXX_PROFILE" } }
|
-// { dg-skip-if "" { *-*-* } { "-D_GLIBCXX_PROFILE" } }
|
||||||
|
|
||||||
-// Copyright (C) 2014-2018 Free Software Foundation, Inc.
|
-// Copyright (C) 2014-2018 Free Software Foundation, Inc.
|
||||||
+// Copyright (C) 2014-2024 Free Software Foundation, Inc.
|
+// Copyright (C) 2014-2025 Free Software Foundation, Inc.
|
||||||
//
|
//
|
||||||
// This file is part of the GNU ISO C++ Library. This library is free
|
// 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
|
// software; you can redistribute it and/or modify it under the
|
||||||
@ -361,7 +361,7 @@ index 0c7cb4c9bb6..c8b70622bef 100644
|
|||||||
return 0; // Mark SPOT
|
return 0; // Mark SPOT
|
||||||
}
|
}
|
||||||
diff --git a/libstdc++-v3/testsuite/libstdc++-prettyprinters/filesystem-ts.cc b/libstdc++-v3/testsuite/libstdc++-prettyprinters/filesystem-ts.cc
|
diff --git a/libstdc++-v3/testsuite/libstdc++-prettyprinters/filesystem-ts.cc b/libstdc++-v3/testsuite/libstdc++-prettyprinters/filesystem-ts.cc
|
||||||
index 8a1398f6c85..9faeed02852 100644
|
index 8a1398f6c85..3221f2df90d 100644
|
||||||
--- a/libstdc++-v3/testsuite/libstdc++-prettyprinters/filesystem-ts.cc
|
--- a/libstdc++-v3/testsuite/libstdc++-prettyprinters/filesystem-ts.cc
|
||||||
+++ b/libstdc++-v3/testsuite/libstdc++-prettyprinters/filesystem-ts.cc
|
+++ b/libstdc++-v3/testsuite/libstdc++-prettyprinters/filesystem-ts.cc
|
||||||
@@ -2,7 +2,7 @@
|
@@ -2,7 +2,7 @@
|
||||||
@ -369,7 +369,7 @@ index 8a1398f6c85..9faeed02852 100644
|
|||||||
// { dg-require-filesystem-ts "" }
|
// { dg-require-filesystem-ts "" }
|
||||||
|
|
||||||
-// Copyright (C) 2020 Free Software Foundation, Inc.
|
-// Copyright (C) 2020 Free Software Foundation, Inc.
|
||||||
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
|
+// Copyright (C) 2020-2025 Free Software Foundation, Inc.
|
||||||
//
|
//
|
||||||
// This file is part of the GNU ISO C++ Library. This library is free
|
// 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
|
// software; you can redistribute it and/or modify it under the
|
||||||
@ -389,7 +389,7 @@ index 8a1398f6c85..9faeed02852 100644
|
|||||||
std::cout << "\n";
|
std::cout << "\n";
|
||||||
return 0; // Mark SPOT
|
return 0; // Mark SPOT
|
||||||
diff --git a/libstdc++-v3/testsuite/libstdc++-prettyprinters/libfundts.cc b/libstdc++-v3/testsuite/libstdc++-prettyprinters/libfundts.cc
|
diff --git a/libstdc++-v3/testsuite/libstdc++-prettyprinters/libfundts.cc b/libstdc++-v3/testsuite/libstdc++-prettyprinters/libfundts.cc
|
||||||
index ea13ebe71ee..7a6ee8d281e 100644
|
index ea13ebe71ee..bfb86885457 100644
|
||||||
--- a/libstdc++-v3/testsuite/libstdc++-prettyprinters/libfundts.cc
|
--- a/libstdc++-v3/testsuite/libstdc++-prettyprinters/libfundts.cc
|
||||||
+++ b/libstdc++-v3/testsuite/libstdc++-prettyprinters/libfundts.cc
|
+++ b/libstdc++-v3/testsuite/libstdc++-prettyprinters/libfundts.cc
|
||||||
@@ -1,8 +1,7 @@
|
@@ -1,8 +1,7 @@
|
||||||
@ -398,7 +398,7 @@ index ea13ebe71ee..7a6ee8d281e 100644
|
|||||||
-// { dg-skip-if "" { *-*-* } { "-D_GLIBCXX_PROFILE" } }
|
-// { dg-skip-if "" { *-*-* } { "-D_GLIBCXX_PROFILE" } }
|
||||||
|
|
||||||
-// Copyright (C) 2014-2018 Free Software Foundation, Inc.
|
-// Copyright (C) 2014-2018 Free Software Foundation, Inc.
|
||||||
+// Copyright (C) 2014-2024 Free Software Foundation, Inc.
|
+// Copyright (C) 2014-2025 Free Software Foundation, Inc.
|
||||||
//
|
//
|
||||||
// This file is part of the GNU ISO C++ Library. This library is free
|
// 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
|
// software; you can redistribute it and/or modify it under the
|
@ -1,15 +1,15 @@
|
|||||||
libstdc++-v3/python/libstdcxx/v6/__init__.py | 4 +-
|
libstdc++-v3/python/libstdcxx/v6/__init__.py | 4 +-
|
||||||
libstdc++-v3/python/libstdcxx/v6/printers.py | 2593 +++++++++++++++++++-------
|
libstdc++-v3/python/libstdcxx/v6/printers.py | 2597 +++++++++++++++++++-------
|
||||||
libstdc++-v3/python/libstdcxx/v6/xmethods.py | 170 +-
|
libstdc++-v3/python/libstdcxx/v6/xmethods.py | 170 +-
|
||||||
3 files changed, 2017 insertions(+), 750 deletions(-)
|
3 files changed, 2021 insertions(+), 750 deletions(-)
|
||||||
|
|
||||||
diff --git a/libstdc++-v3/python/libstdcxx/v6/__init__.py b/libstdc++-v3/python/libstdcxx/v6/__init__.py
|
diff --git a/libstdc++-v3/python/libstdcxx/v6/__init__.py b/libstdc++-v3/python/libstdcxx/v6/__init__.py
|
||||||
index b001c8520b6..f40acd922af 100644
|
index b001c8520b6..5a8f2de195d 100644
|
||||||
--- a/libstdc++-v3/python/libstdcxx/v6/__init__.py
|
--- a/libstdc++-v3/python/libstdcxx/v6/__init__.py
|
||||||
+++ b/libstdc++-v3/python/libstdcxx/v6/__init__.py
|
+++ b/libstdc++-v3/python/libstdcxx/v6/__init__.py
|
||||||
@@ -1,4 +1,4 @@
|
@@ -1,4 +1,4 @@
|
||||||
-# Copyright (C) 2014-2018 Free Software Foundation, Inc.
|
-# Copyright (C) 2014-2018 Free Software Foundation, Inc.
|
||||||
+# Copyright (C) 2014-2024 Free Software Foundation, Inc.
|
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
|
||||||
|
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
@ -23,14 +23,14 @@ index b001c8520b6..f40acd922af 100644
|
|||||||
def gdb_has_xmethods():
|
def gdb_has_xmethods():
|
||||||
try:
|
try:
|
||||||
diff --git a/libstdc++-v3/python/libstdcxx/v6/printers.py b/libstdc++-v3/python/libstdcxx/v6/printers.py
|
diff --git a/libstdc++-v3/python/libstdcxx/v6/printers.py b/libstdc++-v3/python/libstdcxx/v6/printers.py
|
||||||
index ba9bbc096a0..3026de35bbd 100644
|
index ba9bbc096a0..5f5963cb595 100644
|
||||||
--- a/libstdc++-v3/python/libstdcxx/v6/printers.py
|
--- a/libstdc++-v3/python/libstdcxx/v6/printers.py
|
||||||
+++ b/libstdc++-v3/python/libstdcxx/v6/printers.py
|
+++ b/libstdc++-v3/python/libstdcxx/v6/printers.py
|
||||||
@@ -1,6 +1,6 @@
|
@@ -1,6 +1,6 @@
|
||||||
# Pretty-printers for libstdc++.
|
# Pretty-printers for libstdc++.
|
||||||
|
|
||||||
-# Copyright (C) 2008-2018 Free Software Foundation, Inc.
|
-# Copyright (C) 2008-2018 Free Software Foundation, Inc.
|
||||||
+# Copyright (C) 2008-2024 Free Software Foundation, Inc.
|
+# Copyright (C) 2008-2025 Free Software Foundation, Inc.
|
||||||
|
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
@ -443,7 +443,7 @@ index ba9bbc096a0..3026de35bbd 100644
|
|||||||
try:
|
try:
|
||||||
member = node.type.fields()[1].name
|
member = node.type.fields()[1].name
|
||||||
if member == '_M_data':
|
if member == '_M_data':
|
||||||
@@ -221,240 +400,281 @@ def get_value_from_list_node(node):
|
@@ -221,240 +400,284 @@ def get_value_from_list_node(node):
|
||||||
pass
|
pass
|
||||||
raise ValueError("Unsupported implementation for %s" % str(node.type))
|
raise ValueError("Unsupported implementation for %s" % str(node.type))
|
||||||
|
|
||||||
@ -779,6 +779,9 @@ index ba9bbc096a0..3026de35bbd 100644
|
|||||||
+
|
+
|
||||||
+ def to_string(self):
|
+ def to_string(self):
|
||||||
+ if not self._val['_M_p']:
|
+ if not self._val['_M_p']:
|
||||||
|
+ # PR libstdc++/115098 removed the reference default constructor
|
||||||
|
+ # that this case relates to. New code should never need this,
|
||||||
|
+ # but we still handle it for compatibility with old binaries.
|
||||||
+ return 'invalid std::vector<bool>::reference'
|
+ return 'invalid std::vector<bool>::reference'
|
||||||
+ return bool(self._val['_M_p'].dereference() & (self._val['_M_mask']))
|
+ return bool(self._val['_M_p'].dereference() & (self._val['_M_mask']))
|
||||||
+
|
+
|
||||||
@ -853,7 +856,7 @@ index ba9bbc096a0..3026de35bbd 100644
|
|||||||
else:
|
else:
|
||||||
# Either a node before the last node, or the last node of
|
# Either a node before the last node, or the last node of
|
||||||
# a GCC 4.x tuple (which has an empty parent).
|
# a GCC 4.x tuple (which has an empty parent).
|
||||||
@@ -463,53 +683,55 @@ class StdTuplePrinter:
|
@@ -463,53 +686,55 @@ class StdTuplePrinter:
|
||||||
# - Right node is the actual class contained in the tuple.
|
# - Right node is the actual class contained in the tuple.
|
||||||
|
|
||||||
# Process right node.
|
# Process right node.
|
||||||
@ -938,7 +941,7 @@ index ba9bbc096a0..3026de35bbd 100644
|
|||||||
class RbtreeIterator(Iterator):
|
class RbtreeIterator(Iterator):
|
||||||
"""
|
"""
|
||||||
Turn an RB-tree-based container (std::map, std::set etc.) into
|
Turn an RB-tree-based container (std::map, std::set etc.) into
|
||||||
@@ -517,24 +739,24 @@ class RbtreeIterator(Iterator):
|
@@ -517,24 +742,24 @@ class RbtreeIterator(Iterator):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, rbtree):
|
def __init__(self, rbtree):
|
||||||
@ -972,7 +975,7 @@ index ba9bbc096a0..3026de35bbd 100644
|
|||||||
if node.dereference()['_M_right']:
|
if node.dereference()['_M_right']:
|
||||||
node = node.dereference()['_M_right']
|
node = node.dereference()['_M_right']
|
||||||
while node.dereference()['_M_left']:
|
while node.dereference()['_M_left']:
|
||||||
@@ -546,11 +768,12 @@ class RbtreeIterator(Iterator):
|
@@ -546,11 +771,12 @@ class RbtreeIterator(Iterator):
|
||||||
parent = parent.dereference()['_M_parent']
|
parent = parent.dereference()['_M_parent']
|
||||||
if node.dereference()['_M_right'] != parent:
|
if node.dereference()['_M_right'] != parent:
|
||||||
node = parent
|
node = parent
|
||||||
@ -987,7 +990,7 @@ index ba9bbc096a0..3026de35bbd 100644
|
|||||||
try:
|
try:
|
||||||
member = node.type.fields()[1].name
|
member = node.type.fields()[1].name
|
||||||
if member == '_M_value_field':
|
if member == '_M_value_field':
|
||||||
@@ -567,143 +790,142 @@ def get_value_from_Rb_tree_node(node):
|
@@ -567,143 +793,142 @@ def get_value_from_Rb_tree_node(node):
|
||||||
# This is a pretty printer for std::_Rb_tree_iterator (which is
|
# This is a pretty printer for std::_Rb_tree_iterator (which is
|
||||||
# std::map::iterator), and has nothing to do with the RbtreeIterator
|
# std::map::iterator), and has nothing to do with the RbtreeIterator
|
||||||
# class above.
|
# class above.
|
||||||
@ -1207,7 +1210,7 @@ index ba9bbc096a0..3026de35bbd 100644
|
|||||||
except:
|
except:
|
||||||
return []
|
return []
|
||||||
|
|
||||||
@@ -713,7 +935,7 @@ class StdBitsetPrinter:
|
@@ -713,7 +938,7 @@ class StdBitsetPrinter:
|
||||||
# array. This depends on the template specialization used.
|
# array. This depends on the template specialization used.
|
||||||
# If it is a single long, convert to a single element list.
|
# If it is a single long, convert to a single element list.
|
||||||
if wtype.code == gdb.TYPE_CODE_ARRAY:
|
if wtype.code == gdb.TYPE_CODE_ARRAY:
|
||||||
@ -1216,7 +1219,7 @@ index ba9bbc096a0..3026de35bbd 100644
|
|||||||
else:
|
else:
|
||||||
words = [words]
|
words = [words]
|
||||||
tsize = wtype.sizeof
|
tsize = wtype.sizeof
|
||||||
@@ -733,279 +955,349 @@ class StdBitsetPrinter:
|
@@ -733,279 +958,349 @@ class StdBitsetPrinter:
|
||||||
byte = byte + 1
|
byte = byte + 1
|
||||||
return result
|
return result
|
||||||
|
|
||||||
@ -1709,7 +1712,7 @@ index ba9bbc096a0..3026de35bbd 100644
|
|||||||
global _use_type_printing
|
global _use_type_printing
|
||||||
if not _use_type_printing:
|
if not _use_type_printing:
|
||||||
return str(type)
|
return str(type)
|
||||||
@@ -1013,35 +1305,37 @@ class SingleObjContainerPrinter(object):
|
@@ -1013,35 +1308,37 @@ class SingleObjContainerPrinter(object):
|
||||||
type) or str(type)
|
type) or str(type)
|
||||||
|
|
||||||
class _contained(Iterator):
|
class _contained(Iterator):
|
||||||
@ -1766,7 +1769,7 @@ index ba9bbc096a0..3026de35bbd 100644
|
|||||||
|
|
||||||
# Turn the function pointer into an actual address.
|
# Turn the function pointer into an actual address.
|
||||||
# This is needed to unpack ppc64 function descriptors.
|
# This is needed to unpack ppc64 function descriptors.
|
||||||
@@ -1062,252 +1356,1003 @@ def function_pointer_to_name(f):
|
@@ -1062,252 +1359,1003 @@ def function_pointer_to_name(f):
|
||||||
except:
|
except:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
@ -2127,31 +2130,41 @@ index ba9bbc096a0..3026de35bbd 100644
|
|||||||
+ self._item = cmpts['_M_impl']['_M_start']
|
+ self._item = cmpts['_M_impl']['_M_start']
|
||||||
+ self._finish = cmpts['_M_impl']['_M_finish']
|
+ self._finish = cmpts['_M_impl']['_M_finish']
|
||||||
+ self._count = 0
|
+ self._count = 0
|
||||||
+
|
|
||||||
+ def __iter__(self):
|
def __iter__(self):
|
||||||
+ return self
|
return self
|
||||||
+
|
|
||||||
+ def __next__(self):
|
def __next__(self):
|
||||||
|
- if self.item == self.finish:
|
||||||
+ if self._item == self._finish:
|
+ if self._item == self._finish:
|
||||||
+ raise StopIteration
|
raise StopIteration
|
||||||
|
- item = self.item.dereference()
|
||||||
|
- count = self.count
|
||||||
|
- self.count = self.count + 1
|
||||||
|
- self.item = self.item + 1
|
||||||
+ item = self._item.dereference()
|
+ item = self._item.dereference()
|
||||||
+ count = self._count
|
+ count = self._count
|
||||||
+ self._count = self._count + 1
|
+ self._count = self._count + 1
|
||||||
+ self._item = self._item + 1
|
+ self._item = self._item + 1
|
||||||
+ path = item['_M_pathname']
|
path = item['_M_pathname']
|
||||||
|
- t = StdExpPathPrinter(self.pathtype, item)._path_type()
|
||||||
+ t = StdExpPathPrinter(self._pathtype, item)._path_type()
|
+ t = StdExpPathPrinter(self._pathtype, item)._path_type()
|
||||||
+ if not t:
|
if not t:
|
||||||
+ t = count
|
t = count
|
||||||
+ return ('[%s]' % t, path)
|
return ('[%s]' % t, path)
|
||||||
+
|
|
||||||
+ def children(self):
|
def children(self):
|
||||||
|
- return self._iterator(self.val['_M_cmpts'], self.typename)
|
||||||
+ return self._iterator(self._val['_M_cmpts'], self._typename)
|
+ return self._iterator(self._val['_M_cmpts'], self._typename)
|
||||||
+
|
|
||||||
+
|
|
||||||
|
-class StdPairPrinter:
|
||||||
|
- "Print a std::pair object, with 'first' and 'second' as children"
|
||||||
+class StdPathPrinter(printer_base):
|
+class StdPathPrinter(printer_base):
|
||||||
+ """Print a std::filesystem::path."""
|
+ """Print a std::filesystem::path."""
|
||||||
+
|
|
||||||
+ def __init__(self, typename, val):
|
def __init__(self, typename, val):
|
||||||
|
- self.val = val
|
||||||
+ self._val = val
|
+ self._val = val
|
||||||
+ self._typename = typename
|
+ self._typename = typename
|
||||||
+ impl = unique_ptr_get(self._val['_M_cmpts']['_M_impl'])
|
+ impl = unique_ptr_get(self._val['_M_cmpts']['_M_impl'])
|
||||||
@ -2200,41 +2213,31 @@ index ba9bbc096a0..3026de35bbd 100644
|
|||||||
+ else:
|
+ else:
|
||||||
+ self._item = None
|
+ self._item = None
|
||||||
+ self._finish = None
|
+ self._finish = None
|
||||||
|
+
|
||||||
def __iter__(self):
|
+ def __iter__(self):
|
||||||
return self
|
+ return self
|
||||||
|
+
|
||||||
def __next__(self):
|
+ def __next__(self):
|
||||||
- if self.item == self.finish:
|
|
||||||
+ if self._item == self._finish:
|
+ if self._item == self._finish:
|
||||||
raise StopIteration
|
+ raise StopIteration
|
||||||
- item = self.item.dereference()
|
|
||||||
- count = self.count
|
|
||||||
- self.count = self.count + 1
|
|
||||||
- self.item = self.item + 1
|
|
||||||
+ item = self._item.dereference()
|
+ item = self._item.dereference()
|
||||||
+ count = self._count
|
+ count = self._count
|
||||||
+ self._count = self._count + 1
|
+ self._count = self._count + 1
|
||||||
+ self._item = self._item + 1
|
+ self._item = self._item + 1
|
||||||
path = item['_M_pathname']
|
+ path = item['_M_pathname']
|
||||||
- t = StdExpPathPrinter(self.pathtype, item)._path_type()
|
|
||||||
+ t = StdPathPrinter(self._pathtype, item)._path_type()
|
+ t = StdPathPrinter(self._pathtype, item)._path_type()
|
||||||
if not t:
|
+ if not t:
|
||||||
t = count
|
+ t = count
|
||||||
return ('[%s]' % t, path)
|
+ return ('[%s]' % t, path)
|
||||||
|
+
|
||||||
def children(self):
|
+ def children(self):
|
||||||
- return self._iterator(self.val['_M_cmpts'], self.typename)
|
|
||||||
+ return self._iterator(self._impl, self._typename)
|
+ return self._iterator(self._impl, self._typename)
|
||||||
|
+
|
||||||
|
+
|
||||||
-class StdPairPrinter:
|
|
||||||
- "Print a std::pair object, with 'first' and 'second' as children"
|
|
||||||
+class StdPairPrinter(printer_base):
|
+class StdPairPrinter(printer_base):
|
||||||
+ """Print a std::pair object, with 'first' and 'second' as children."""
|
+ """Print a std::pair object, with 'first' and 'second' as children."""
|
||||||
|
+
|
||||||
def __init__(self, typename, val):
|
+ def __init__(self, typename, val):
|
||||||
- self.val = val
|
|
||||||
+ self._val = val
|
+ self._val = val
|
||||||
|
|
||||||
class _iter(Iterator):
|
class _iter(Iterator):
|
||||||
@ -2895,7 +2898,7 @@ index ba9bbc096a0..3026de35bbd 100644
|
|||||||
self.enabled = True
|
self.enabled = True
|
||||||
|
|
||||||
def invoke(self, value):
|
def invoke(self, value):
|
||||||
@@ -1315,36 +2360,40 @@ class RxPrinter(object):
|
@@ -1315,36 +2363,40 @@ class RxPrinter(object):
|
||||||
return None
|
return None
|
||||||
|
|
||||||
if value.type.code == gdb.TYPE_CODE_REF:
|
if value.type.code == gdb.TYPE_CODE_REF:
|
||||||
@ -2947,7 +2950,7 @@ index ba9bbc096a0..3026de35bbd 100644
|
|||||||
self.add(vbase + name, function)
|
self.add(vbase + name, function)
|
||||||
|
|
||||||
# Add a name using _GLIBCXX_BEGIN_NAMESPACE_CONTAINER.
|
# Add a name using _GLIBCXX_BEGIN_NAMESPACE_CONTAINER.
|
||||||
@@ -1356,10 +2405,10 @@ class Printer(object):
|
@@ -1356,10 +2408,10 @@ class Printer(object):
|
||||||
def get_basic_type(type):
|
def get_basic_type(type):
|
||||||
# If it points to a reference, get the reference.
|
# If it points to a reference, get the reference.
|
||||||
if type.code == gdb.TYPE_CODE_REF:
|
if type.code == gdb.TYPE_CODE_REF:
|
||||||
@ -2960,7 +2963,7 @@ index ba9bbc096a0..3026de35bbd 100644
|
|||||||
|
|
||||||
return type.tag
|
return type.tag
|
||||||
|
|
||||||
@@ -1370,47 +2419,49 @@ class Printer(object):
|
@@ -1370,47 +2422,49 @@ class Printer(object):
|
||||||
|
|
||||||
# All the types we match are template types, so we can use a
|
# All the types we match are template types, so we can use a
|
||||||
# dictionary.
|
# dictionary.
|
||||||
@ -3020,7 +3023,7 @@ index ba9bbc096a0..3026de35bbd 100644
|
|||||||
|
|
||||||
def recognize(self, type_obj):
|
def recognize(self, type_obj):
|
||||||
"""
|
"""
|
||||||
@@ -1433,7 +2484,7 @@ class TemplateTypePrinter(object):
|
@@ -1433,7 +2487,7 @@ class TemplateTypePrinter(object):
|
||||||
# The actual template argument in the type:
|
# The actual template argument in the type:
|
||||||
targ = template_args[n]
|
targ = template_args[n]
|
||||||
# The default template argument for the class template:
|
# The default template argument for the class template:
|
||||||
@ -3029,7 +3032,7 @@ index ba9bbc096a0..3026de35bbd 100644
|
|||||||
if defarg is not None:
|
if defarg is not None:
|
||||||
# Substitute other template arguments into the default:
|
# Substitute other template arguments into the default:
|
||||||
defarg = defarg.format(*template_args)
|
defarg = defarg.format(*template_args)
|
||||||
@@ -1470,7 +2521,7 @@ class TemplateTypePrinter(object):
|
@@ -1470,7 +2524,7 @@ class TemplateTypePrinter(object):
|
||||||
if type_obj.code == gdb.TYPE_CODE_ARRAY:
|
if type_obj.code == gdb.TYPE_CODE_ARRAY:
|
||||||
type_str = self._recognize_subtype(type_obj.target())
|
type_str = self._recognize_subtype(type_obj.target())
|
||||||
if str(type_obj.strip_typedefs()).endswith('[]'):
|
if str(type_obj.strip_typedefs()).endswith('[]'):
|
||||||
@ -3038,7 +3041,7 @@ index ba9bbc096a0..3026de35bbd 100644
|
|||||||
return "%s[%d]" % (type_str, type_obj.range()[1] + 1)
|
return "%s[%d]" % (type_str, type_obj.range()[1] + 1)
|
||||||
if type_obj.code == gdb.TYPE_CODE_REF:
|
if type_obj.code == gdb.TYPE_CODE_REF:
|
||||||
return self._recognize_subtype(type_obj.target()) + '&'
|
return self._recognize_subtype(type_obj.target()) + '&'
|
||||||
@@ -1479,17 +2530,18 @@ class TemplateTypePrinter(object):
|
@@ -1479,17 +2533,18 @@ class TemplateTypePrinter(object):
|
||||||
return self._recognize_subtype(type_obj.target()) + '&&'
|
return self._recognize_subtype(type_obj.target()) + '&&'
|
||||||
|
|
||||||
type_str = gdb.types.apply_type_recognizers(
|
type_str = gdb.types.apply_type_recognizers(
|
||||||
@ -3061,7 +3064,7 @@ index ba9bbc096a0..3026de35bbd 100644
|
|||||||
Add a type printer for a class template with default template arguments.
|
Add a type printer for a class template with default template arguments.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
@@ -1503,78 +2555,121 @@ def add_one_template_type_printer(obj, name, defargs):
|
@@ -1503,78 +2558,121 @@ def add_one_template_type_printer(obj, name, defargs):
|
||||||
{ 2: 'std::hash<{0}>',
|
{ 2: 'std::hash<{0}>',
|
||||||
3: 'std::equal_to<{0}>',
|
3: 'std::equal_to<{0}>',
|
||||||
4: 'std::allocator<std::pair<const {0}, {1}> >' }
|
4: 'std::allocator<std::pair<const {0}, {1}> >' }
|
||||||
@ -3069,12 +3072,12 @@ index ba9bbc096a0..3026de35bbd 100644
|
|||||||
"""
|
"""
|
||||||
- printer = TemplateTypePrinter('std::'+name, defargs)
|
- printer = TemplateTypePrinter('std::'+name, defargs)
|
||||||
+ printer = TemplateTypePrinter('std::' + name, defargs)
|
+ printer = TemplateTypePrinter('std::' + name, defargs)
|
||||||
+ gdb.types.register_type_printer(obj, printer)
|
gdb.types.register_type_printer(obj, printer)
|
||||||
|
- if _versioned_namespace:
|
||||||
+
|
+
|
||||||
+ # Add type printer for same type in debug namespace:
|
+ # Add type printer for same type in debug namespace:
|
||||||
+ printer = TemplateTypePrinter('std::__debug::' + name, defargs)
|
+ printer = TemplateTypePrinter('std::__debug::' + name, defargs)
|
||||||
gdb.types.register_type_printer(obj, printer)
|
+ gdb.types.register_type_printer(obj, printer)
|
||||||
- if _versioned_namespace:
|
|
||||||
+
|
+
|
||||||
+ if '__cxx11' not in name:
|
+ if '__cxx11' not in name:
|
||||||
# Add second type printer for same type in versioned namespace:
|
# Add second type printer for same type in versioned namespace:
|
||||||
@ -3190,10 +3193,10 @@ index ba9bbc096a0..3026de35bbd 100644
|
|||||||
- return self._recognizer(self.match, self.name)
|
- return self._recognizer(self.match, self.name)
|
||||||
+ """Return a recognizer object for this type printer."""
|
+ """Return a recognizer object for this type printer."""
|
||||||
+ return self._recognizer(self._template, self.name, self._targ1)
|
+ return self._recognizer(self._template, self.name, self._targ1)
|
||||||
|
+
|
||||||
|
|
||||||
-def add_one_type_printer(obj, match, name):
|
-def add_one_type_printer(obj, match, name):
|
||||||
- printer = FilteringTypePrinter('std::' + match, 'std::' + name)
|
- printer = FilteringTypePrinter('std::' + match, 'std::' + name)
|
||||||
+
|
|
||||||
+def add_one_type_printer(obj, template, name, targ1=None):
|
+def add_one_type_printer(obj, template, name, targ1=None):
|
||||||
+ printer = FilteringTypePrinter('std::' + template, 'std::' + name, targ1)
|
+ printer = FilteringTypePrinter('std::' + template, 'std::' + name, targ1)
|
||||||
gdb.types.register_type_printer(obj, printer)
|
gdb.types.register_type_printer(obj, printer)
|
||||||
@ -3208,7 +3211,7 @@ index ba9bbc096a0..3026de35bbd 100644
|
|||||||
def register_type_printers(obj):
|
def register_type_printers(obj):
|
||||||
global _use_type_printing
|
global _use_type_printing
|
||||||
|
|
||||||
@@ -1582,29 +2677,39 @@ def register_type_printers(obj):
|
@@ -1582,29 +2680,39 @@ def register_type_printers(obj):
|
||||||
return
|
return
|
||||||
|
|
||||||
# Add type printers for typedefs std::string, std::wstring etc.
|
# Add type printers for typedefs std::string, std::wstring etc.
|
||||||
@ -3220,12 +3223,12 @@ index ba9bbc096a0..3026de35bbd 100644
|
|||||||
+ ('u16', 'char16_t'),
|
+ ('u16', 'char16_t'),
|
||||||
+ ('u32', 'char32_t')):
|
+ ('u32', 'char32_t')):
|
||||||
+ add_one_type_printer(obj, 'basic_string', ch[0] + 'string', ch[1])
|
+ add_one_type_printer(obj, 'basic_string', ch[0] + 'string', ch[1])
|
||||||
+ add_one_type_printer(obj, '__cxx11::basic_string',
|
|
||||||
+ ch[0] + 'string', ch[1])
|
|
||||||
+ # Typedefs for __cxx11::basic_string used to be in namespace __cxx11:
|
|
||||||
add_one_type_printer(obj, '__cxx11::basic_string',
|
add_one_type_printer(obj, '__cxx11::basic_string',
|
||||||
- '__cxx11::' + ch + 'string')
|
- '__cxx11::' + ch + 'string')
|
||||||
- add_one_type_printer(obj, 'basic_string_view', ch + 'string_view')
|
- add_one_type_printer(obj, 'basic_string_view', ch + 'string_view')
|
||||||
|
+ ch[0] + 'string', ch[1])
|
||||||
|
+ # Typedefs for __cxx11::basic_string used to be in namespace __cxx11:
|
||||||
|
+ add_one_type_printer(obj, '__cxx11::basic_string',
|
||||||
+ '__cxx11::' + ch[0] + 'string', ch[1])
|
+ '__cxx11::' + ch[0] + 'string', ch[1])
|
||||||
+ add_one_type_printer(obj, 'basic_string_view',
|
+ add_one_type_printer(obj, 'basic_string_view',
|
||||||
+ ch[0] + 'string_view', ch[1])
|
+ ch[0] + 'string_view', ch[1])
|
||||||
@ -3260,7 +3263,7 @@ index ba9bbc096a0..3026de35bbd 100644
|
|||||||
for x in ('sub_match', 'regex_iterator', 'regex_token_iterator'):
|
for x in ('sub_match', 'regex_iterator', 'regex_token_iterator'):
|
||||||
add_one_type_printer(obj, abi + x, abi + ch + x)
|
add_one_type_printer(obj, abi + x, abi + ch + x)
|
||||||
|
|
||||||
@@ -1613,9 +2718,9 @@ def register_type_printers(obj):
|
@@ -1613,9 +2721,9 @@ def register_type_printers(obj):
|
||||||
add_one_type_printer(obj, 'fpos', 'streampos')
|
add_one_type_printer(obj, 'fpos', 'streampos')
|
||||||
|
|
||||||
# Add type printers for <chrono> typedefs.
|
# Add type printers for <chrono> typedefs.
|
||||||
@ -3273,7 +3276,7 @@ index ba9bbc096a0..3026de35bbd 100644
|
|||||||
|
|
||||||
# Add type printers for <random> typedefs.
|
# Add type printers for <random> typedefs.
|
||||||
add_one_type_printer(obj, 'linear_congruential_engine', 'minstd_rand0')
|
add_one_type_printer(obj, 'linear_congruential_engine', 'minstd_rand0')
|
||||||
@@ -1630,47 +2735,54 @@ def register_type_printers(obj):
|
@@ -1630,47 +2738,54 @@ def register_type_printers(obj):
|
||||||
|
|
||||||
# Add type printers for experimental::basic_string_view typedefs.
|
# Add type printers for experimental::basic_string_view typedefs.
|
||||||
ns = 'experimental::fundamentals_v1::'
|
ns = 'experimental::fundamentals_v1::'
|
||||||
@ -3347,16 +3350,16 @@ index ba9bbc096a0..3026de35bbd 100644
|
|||||||
+ {1: 'std::hash<{0}>',
|
+ {1: 'std::hash<{0}>',
|
||||||
+ 2: 'std::equal_to<{0}>',
|
+ 2: 'std::equal_to<{0}>',
|
||||||
+ 3: 'std::allocator<{0}>'})
|
+ 3: 'std::allocator<{0}>'})
|
||||||
|
+
|
||||||
|
|
||||||
-def register_libstdcxx_printers (obj):
|
-def register_libstdcxx_printers (obj):
|
||||||
- "Register libstdc++ pretty-printers with objfile Obj."
|
- "Register libstdc++ pretty-printers with objfile Obj."
|
||||||
+
|
|
||||||
+def register_libstdcxx_printers(obj):
|
+def register_libstdcxx_printers(obj):
|
||||||
+ """Register libstdc++ pretty-printers with objfile Obj."""
|
+ """Register libstdc++ pretty-printers with objfile Obj."""
|
||||||
|
|
||||||
global _use_gdb_pp
|
global _use_gdb_pp
|
||||||
global libstdcxx_printer
|
global libstdcxx_printer
|
||||||
@@ -1684,7 +2796,8 @@ def register_libstdcxx_printers (obj):
|
@@ -1684,7 +2799,8 @@ def register_libstdcxx_printers (obj):
|
||||||
|
|
||||||
register_type_printers(obj)
|
register_type_printers(obj)
|
||||||
|
|
||||||
@ -3366,7 +3369,7 @@ index ba9bbc096a0..3026de35bbd 100644
|
|||||||
global libstdcxx_printer
|
global libstdcxx_printer
|
||||||
|
|
||||||
libstdcxx_printer = Printer("libstdc++-v6")
|
libstdcxx_printer = Printer("libstdc++-v6")
|
||||||
@@ -1693,7 +2806,8 @@ def build_libstdcxx_dictionary ():
|
@@ -1693,7 +2809,8 @@ def build_libstdcxx_dictionary ():
|
||||||
# In order from:
|
# In order from:
|
||||||
# http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01847.html
|
# http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01847.html
|
||||||
libstdcxx_printer.add_version('std::', 'basic_string', StdStringPrinter)
|
libstdcxx_printer.add_version('std::', 'basic_string', StdStringPrinter)
|
||||||
@ -3376,16 +3379,12 @@ index ba9bbc096a0..3026de35bbd 100644
|
|||||||
libstdcxx_printer.add_container('std::', 'bitset', StdBitsetPrinter)
|
libstdcxx_printer.add_container('std::', 'bitset', StdBitsetPrinter)
|
||||||
libstdcxx_printer.add_container('std::', 'deque', StdDequePrinter)
|
libstdcxx_printer.add_container('std::', 'deque', StdDequePrinter)
|
||||||
libstdcxx_printer.add_container('std::', 'list', StdListPrinter)
|
libstdcxx_printer.add_container('std::', 'list', StdListPrinter)
|
||||||
@@ -1711,6 +2825,18 @@ def build_libstdcxx_dictionary ():
|
@@ -1711,6 +2828,14 @@ def build_libstdcxx_dictionary ():
|
||||||
libstdcxx_printer.add_version('std::', 'unique_ptr', UniquePointerPrinter)
|
libstdcxx_printer.add_version('std::', 'unique_ptr', UniquePointerPrinter)
|
||||||
libstdcxx_printer.add_container('std::', 'vector', StdVectorPrinter)
|
libstdcxx_printer.add_container('std::', 'vector', StdVectorPrinter)
|
||||||
# vector<bool>
|
# vector<bool>
|
||||||
+ libstdcxx_printer.add_version('std::', 'locale', StdLocalePrinter)
|
+ libstdcxx_printer.add_version('std::', 'locale', StdLocalePrinter)
|
||||||
+
|
+
|
||||||
+ libstdcxx_printer.add_version('std::', 'integral_constant',
|
|
||||||
+ StdIntegralConstantPrinter)
|
|
||||||
+ libstdcxx_printer.add_version('std::', 'text_encoding',
|
|
||||||
+ StdTextEncodingPrinter)
|
|
||||||
+
|
+
|
||||||
+ if hasattr(gdb.Value, 'dynamic_type'):
|
+ if hasattr(gdb.Value, 'dynamic_type'):
|
||||||
+ libstdcxx_printer.add_version('std::', 'error_code',
|
+ libstdcxx_printer.add_version('std::', 'error_code',
|
||||||
@ -3395,7 +3394,7 @@ index ba9bbc096a0..3026de35bbd 100644
|
|||||||
|
|
||||||
# Printer registrations for classes compiled with -D_GLIBCXX_DEBUG.
|
# Printer registrations for classes compiled with -D_GLIBCXX_DEBUG.
|
||||||
libstdcxx_printer.add('std::__debug::bitset', StdBitsetPrinter)
|
libstdcxx_printer.add('std::__debug::bitset', StdBitsetPrinter)
|
||||||
@@ -1719,12 +2845,7 @@ def build_libstdcxx_dictionary ():
|
@@ -1719,12 +2844,7 @@ def build_libstdcxx_dictionary ():
|
||||||
libstdcxx_printer.add('std::__debug::map', StdMapPrinter)
|
libstdcxx_printer.add('std::__debug::map', StdMapPrinter)
|
||||||
libstdcxx_printer.add('std::__debug::multimap', StdMapPrinter)
|
libstdcxx_printer.add('std::__debug::multimap', StdMapPrinter)
|
||||||
libstdcxx_printer.add('std::__debug::multiset', StdSetPrinter)
|
libstdcxx_printer.add('std::__debug::multiset', StdSetPrinter)
|
||||||
@ -3408,7 +3407,7 @@ index ba9bbc096a0..3026de35bbd 100644
|
|||||||
libstdcxx_printer.add('std::__debug::vector', StdVectorPrinter)
|
libstdcxx_printer.add('std::__debug::vector', StdVectorPrinter)
|
||||||
|
|
||||||
# These are the TR1 and C++11 printers.
|
# These are the TR1 and C++11 printers.
|
||||||
@@ -1742,8 +2863,10 @@ def build_libstdcxx_dictionary ():
|
@@ -1742,8 +2862,10 @@ def build_libstdcxx_dictionary ():
|
||||||
libstdcxx_printer.add_container('std::', 'forward_list',
|
libstdcxx_printer.add_container('std::', 'forward_list',
|
||||||
StdForwardListPrinter)
|
StdForwardListPrinter)
|
||||||
|
|
||||||
@ -3421,7 +3420,7 @@ index ba9bbc096a0..3026de35bbd 100644
|
|||||||
libstdcxx_printer.add_version('std::tr1::', 'unordered_map',
|
libstdcxx_printer.add_version('std::tr1::', 'unordered_map',
|
||||||
Tr1UnorderedMapPrinter)
|
Tr1UnorderedMapPrinter)
|
||||||
libstdcxx_printer.add_version('std::tr1::', 'unordered_set',
|
libstdcxx_printer.add_version('std::tr1::', 'unordered_set',
|
||||||
@@ -1753,6 +2876,28 @@ def build_libstdcxx_dictionary ():
|
@@ -1753,6 +2875,30 @@ def build_libstdcxx_dictionary ():
|
||||||
libstdcxx_printer.add_version('std::tr1::', 'unordered_multiset',
|
libstdcxx_printer.add_version('std::tr1::', 'unordered_multiset',
|
||||||
Tr1UnorderedSetPrinter)
|
Tr1UnorderedSetPrinter)
|
||||||
|
|
||||||
@ -3442,6 +3441,8 @@ index ba9bbc096a0..3026de35bbd 100644
|
|||||||
+ StdChronoDurationPrinter)
|
+ StdChronoDurationPrinter)
|
||||||
+ libstdcxx_printer.add_version('std::chrono::', 'time_point',
|
+ libstdcxx_printer.add_version('std::chrono::', 'time_point',
|
||||||
+ StdChronoTimePointPrinter)
|
+ StdChronoTimePointPrinter)
|
||||||
|
+ libstdcxx_printer.add_version('std::', 'integral_constant',
|
||||||
|
+ StdIntegralConstantPrinter)
|
||||||
+
|
+
|
||||||
+ # std::regex components
|
+ # std::regex components
|
||||||
+ libstdcxx_printer.add_version('std::__detail::', '_State',
|
+ libstdcxx_printer.add_version('std::__detail::', '_State',
|
||||||
@ -3450,7 +3451,7 @@ index ba9bbc096a0..3026de35bbd 100644
|
|||||||
# These are the C++11 printer registrations for -D_GLIBCXX_DEBUG cases.
|
# These are the C++11 printer registrations for -D_GLIBCXX_DEBUG cases.
|
||||||
# The tr1 namespace containers do not have any debug equivalents,
|
# The tr1 namespace containers do not have any debug equivalents,
|
||||||
# so do not register printers for them.
|
# so do not register printers for them.
|
||||||
@@ -1780,9 +2925,9 @@ def build_libstdcxx_dictionary ():
|
@@ -1780,9 +2926,9 @@ def build_libstdcxx_dictionary ():
|
||||||
libstdcxx_printer.add_version('std::experimental::filesystem::v1::__cxx11::',
|
libstdcxx_printer.add_version('std::experimental::filesystem::v1::__cxx11::',
|
||||||
'path', StdExpPathPrinter)
|
'path', StdExpPathPrinter)
|
||||||
libstdcxx_printer.add_version('std::filesystem::',
|
libstdcxx_printer.add_version('std::filesystem::',
|
||||||
@ -3462,7 +3463,7 @@ index ba9bbc096a0..3026de35bbd 100644
|
|||||||
|
|
||||||
# C++17 components
|
# C++17 components
|
||||||
libstdcxx_printer.add_version('std::',
|
libstdcxx_printer.add_version('std::',
|
||||||
@@ -1796,6 +2941,33 @@ def build_libstdcxx_dictionary ():
|
@@ -1796,6 +2942,36 @@ def build_libstdcxx_dictionary ():
|
||||||
libstdcxx_printer.add_version('std::',
|
libstdcxx_printer.add_version('std::',
|
||||||
'_Node_handle', StdNodeHandlePrinter)
|
'_Node_handle', StdNodeHandlePrinter)
|
||||||
|
|
||||||
@ -3493,10 +3494,13 @@ index ba9bbc096a0..3026de35bbd 100644
|
|||||||
+ # libstdcxx_printer.add_version('std::chrono::(anonymous namespace)', 'Rule',
|
+ # libstdcxx_printer.add_version('std::chrono::(anonymous namespace)', 'Rule',
|
||||||
+ # StdChronoTimeZoneRulePrinter)
|
+ # StdChronoTimeZoneRulePrinter)
|
||||||
+
|
+
|
||||||
|
+ # C++26 components
|
||||||
|
+ libstdcxx_printer.add_version('std::', 'text_encoding',
|
||||||
|
+ StdTextEncodingPrinter)
|
||||||
# Extensions.
|
# Extensions.
|
||||||
libstdcxx_printer.add_version('__gnu_cxx::', 'slist', StdSlistPrinter)
|
libstdcxx_printer.add_version('__gnu_cxx::', 'slist', StdSlistPrinter)
|
||||||
|
|
||||||
@@ -1816,6 +2988,12 @@ def build_libstdcxx_dictionary ():
|
@@ -1816,6 +2992,12 @@ def build_libstdcxx_dictionary ():
|
||||||
StdDequeIteratorPrinter)
|
StdDequeIteratorPrinter)
|
||||||
libstdcxx_printer.add_version('__gnu_cxx::', '__normal_iterator',
|
libstdcxx_printer.add_version('__gnu_cxx::', '__normal_iterator',
|
||||||
StdVectorIteratorPrinter)
|
StdVectorIteratorPrinter)
|
||||||
@ -3509,7 +3513,7 @@ index ba9bbc096a0..3026de35bbd 100644
|
|||||||
libstdcxx_printer.add_version('__gnu_cxx::', '_Slist_iterator',
|
libstdcxx_printer.add_version('__gnu_cxx::', '_Slist_iterator',
|
||||||
StdSlistIteratorPrinter)
|
StdSlistIteratorPrinter)
|
||||||
libstdcxx_printer.add_container('std::', '_Fwd_list_iterator',
|
libstdcxx_printer.add_container('std::', '_Fwd_list_iterator',
|
||||||
@@ -1828,4 +3006,5 @@ def build_libstdcxx_dictionary ():
|
@@ -1828,4 +3010,5 @@ def build_libstdcxx_dictionary ():
|
||||||
libstdcxx_printer.add('__gnu_debug::_Safe_iterator',
|
libstdcxx_printer.add('__gnu_debug::_Safe_iterator',
|
||||||
StdDebugIteratorPrinter)
|
StdDebugIteratorPrinter)
|
||||||
|
|
||||||
@ -3517,14 +3521,14 @@ index ba9bbc096a0..3026de35bbd 100644
|
|||||||
+
|
+
|
||||||
+build_libstdcxx_dictionary()
|
+build_libstdcxx_dictionary()
|
||||||
diff --git a/libstdc++-v3/python/libstdcxx/v6/xmethods.py b/libstdc++-v3/python/libstdcxx/v6/xmethods.py
|
diff --git a/libstdc++-v3/python/libstdcxx/v6/xmethods.py b/libstdc++-v3/python/libstdcxx/v6/xmethods.py
|
||||||
index 12fefdb041c..436c866e001 100644
|
index 12fefdb041c..109ca10956a 100644
|
||||||
--- a/libstdc++-v3/python/libstdcxx/v6/xmethods.py
|
--- a/libstdc++-v3/python/libstdcxx/v6/xmethods.py
|
||||||
+++ b/libstdc++-v3/python/libstdcxx/v6/xmethods.py
|
+++ b/libstdc++-v3/python/libstdcxx/v6/xmethods.py
|
||||||
@@ -1,6 +1,6 @@
|
@@ -1,6 +1,6 @@
|
||||||
# Xmethods for libstdc++.
|
# Xmethods for libstdc++.
|
||||||
|
|
||||||
-# Copyright (C) 2014-2018 Free Software Foundation, Inc.
|
-# Copyright (C) 2014-2018 Free Software Foundation, Inc.
|
||||||
+# Copyright (C) 2014-2024 Free Software Foundation, Inc.
|
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
|
||||||
|
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
@ -7,7 +7,7 @@ fi
|
|||||||
|
|
||||||
# Variables to set up for a new GTS update.
|
# Variables to set up for a new GTS update.
|
||||||
# The latest GTS supported on this branch.
|
# The latest GTS supported on this branch.
|
||||||
gts_major=14
|
gts_major=15
|
||||||
# Tests that need to be synced in for this change. These are required to sync
|
# Tests that need to be synced in for this change. These are required to sync
|
||||||
# in adjustments to tests due to changes to pretty printer output.
|
# in adjustments to tests due to changes to pretty printer output.
|
||||||
# Occasionally, a test adjustment may be due to an ABI change, in which case
|
# Occasionally, a test adjustment may be due to an ABI change, in which case
|
||||||
@ -32,7 +32,7 @@ branch=`git branch --show-current`
|
|||||||
|
|
||||||
if ! [[ $branch =~ ^c[0-9]+s$ ]]; then echo "Must be run on a valid centos stream branch, not '$branch'"; exit 1; fi
|
if ! [[ $branch =~ ^c[0-9]+s$ ]]; then echo "Must be run on a valid centos stream branch, not '$branch'"; exit 1; fi
|
||||||
|
|
||||||
gtsrev=`curl -s https://gitlab.com/redhat/centos-stream/rpms/gcc-toolset-$gts_major-gcc/-/raw/$(git branch --show-current)/gcc.spec?ref_type=heads | sed -n 's/^%global gitrev //p'`
|
gtsrev=`curl -s https://gitlab.com/redhat/centos-stream/rpms/gcc-toolset-$gts_major-gcc/-/raw/$(git branch --show-current)/gcc-toolset-15-gcc.spec?ref_type=heads | sed -n 's/^%global gitrev //p'`
|
||||||
|
|
||||||
echo "system at $systemrev and GTS at $gtsrev on the vendor branch"
|
echo "system at $systemrev and GTS at $gtsrev on the vendor branch"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user