https://gcc.gnu.org/g:74498be0e6041d2abcd17cf2c0eed6cb034ce6a3
commit r15-5571-g74498be0e6041d2abcd17cf2c0eed6cb034ce6a3 Author: Jason Merrill <ja...@redhat.com> Date: Wed Nov 20 10:43:30 2024 +0100 c++: modules and debug marker stmts 21_strings/basic_string/operations/contains/nonnull.cc was failing because the module was built with debug markers and the testcase was built not expecting debug markers, so we crashed in lower_stmt. Let's accommodate this by discarding debug marker statements we don't want. gcc/cp/ChangeLog: * module.cc (trees_in::core_vals) [STATEMENT_LIST]: Skip DEBUG_BEGIN_STMT if !MAY_HAVE_DEBUG_MARKER_STMTS. Diff: --- gcc/cp/module.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gcc/cp/module.cc b/gcc/cp/module.cc index 4136fdceb9f6..3b25f9569280 100644 --- a/gcc/cp/module.cc +++ b/gcc/cp/module.cc @@ -6895,7 +6895,12 @@ trees_in::core_vals (tree t) { tree_stmt_iterator iter = tsi_start (t); for (tree stmt; RT (stmt);) - tsi_link_after (&iter, stmt, TSI_CONTINUE_LINKING); + { + if (TREE_CODE (stmt) == DEBUG_BEGIN_STMT + && !MAY_HAVE_DEBUG_MARKER_STMTS) + continue; + tsi_link_after (&iter, stmt, TSI_CONTINUE_LINKING); + } } break;