This patch series adds support for streaming some internal declarations
in C++20 modules that we previously would ICE on.
The series has been successfully bootstrapped and regtested on
x86_64-pc-linux-gnu. Additionally, modules.exp now passes with
'--target_board=unix/-fsanitize=undefined'.
Nathaniel Shead (4):
c++: Add flag to detect underlying representative of bitfield decls
c++/modules: Implement streaming of uncontexted TYPE_DECLs [PR98735]
c++/modules: Support streaming new size cookie for constexpr
[PR120040]
c++/modules: Avoid name clashes when streaming internal labels
[PR98375,PR118904]
gcc/cp/constexpr.cc | 2 +-
gcc/cp/cp-gimplify.cc | 5 +-
gcc/cp/init.cc | 10 +-
gcc/cp/module.cc | 170 +++++++++++++++++++--
gcc/stor-layout.cc | 1 +
gcc/testsuite/g++.dg/modules/pr120040_a.C | 19 +++
gcc/testsuite/g++.dg/modules/pr120040_b.C | 15 ++
gcc/testsuite/g++.dg/modules/src-loc-1.h | 6 +
gcc/testsuite/g++.dg/modules/src-loc-1_a.H | 7 +
gcc/testsuite/g++.dg/modules/src-loc-1_b.C | 5 +
gcc/testsuite/g++.dg/modules/src-loc-1_c.C | 16 ++
gcc/testsuite/g++.dg/modules/ubsan-1_a.C | 10 ++
gcc/testsuite/g++.dg/modules/ubsan-1_b.C | 14 ++
gcc/testsuite/g++.dg/ubsan/module-1-aux.cc | 12 ++
gcc/testsuite/g++.dg/ubsan/module-1.C | 11 ++
gcc/tree-core.h | 1 +
gcc/tree.cc | 51 +++++++
gcc/tree.h | 12 ++
gcc/ubsan.cc | 16 +-
19 files changed, 350 insertions(+), 33 deletions(-)
create mode 100644 gcc/testsuite/g++.dg/modules/pr120040_a.C
create mode 100644 gcc/testsuite/g++.dg/modules/pr120040_b.C
create mode 100644 gcc/testsuite/g++.dg/modules/src-loc-1.h
create mode 100644 gcc/testsuite/g++.dg/modules/src-loc-1_a.H
create mode 100644 gcc/testsuite/g++.dg/modules/src-loc-1_b.C
create mode 100644 gcc/testsuite/g++.dg/modules/src-loc-1_c.C
create mode 100644 gcc/testsuite/g++.dg/modules/ubsan-1_a.C
create mode 100644 gcc/testsuite/g++.dg/modules/ubsan-1_b.C
create mode 100644 gcc/testsuite/g++.dg/ubsan/module-1-aux.cc
create mode 100644 gcc/testsuite/g++.dg/ubsan/module-1.C
--
2.47.0