Bootstrapped and regtested on x86_64-pc-linux-gnu, does this look OK for trunk?
-- >8 -- Issuing a hard error when the GMF doesn't contain preprocessing directives is inconvenient for automated testcase reduction via cvise. This patch relaxes this diagnostic into a pedwarn. gcc/cp/ChangeLog: * parser.cc (cp_parser_translation_unit): Relax GMF contents error into a pedwarn. gcc/testsuite/ChangeLog: * g++.dg/modules/friend-6_a.C: Remove now unnecessary preprocessing directives from GMF. --- gcc/cp/parser.cc | 6 +++--- gcc/testsuite/g++.dg/modules/friend-6_a.C | 2 -- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/gcc/cp/parser.cc b/gcc/cp/parser.cc index 9d0914435fb..e60f0425035 100644 --- a/gcc/cp/parser.cc +++ b/gcc/cp/parser.cc @@ -5253,9 +5253,9 @@ cp_parser_translation_unit (cp_parser* parser) if (!warned) { warned = true; - error_at (token->location, - "global module fragment contents must be" - " from preprocessor inclusion"); + pedwarn (token->location, OPT_Wpedantic, + "global module fragment contents must be" + " from preprocessor inclusion"); } } } diff --git a/gcc/testsuite/g++.dg/modules/friend-6_a.C b/gcc/testsuite/g++.dg/modules/friend-6_a.C index 7493e8f262f..c7868556a3e 100644 --- a/gcc/testsuite/g++.dg/modules/friend-6_a.C +++ b/gcc/testsuite/g++.dg/modules/friend-6_a.C @@ -2,10 +2,8 @@ // { dg-module-cmi friend_6 } module; -# 1 "" 1 template <typename> struct Trans_NS___cxx11_basic_string { template <typename> friend class basic_stringbuf; }; template struct Trans_NS___cxx11_basic_string<char>; -# 6 "" 2 export module friend_6; -- 2.44.0.rc1.15.g4fc51f00ef