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

Reply via email to