This clarifies that c++2[03] intentionally does not enable c++20 modules.
PR c++/99472 gcc/cp/ parser.c (cp_parser_diagnose_invalid_type_name): Clarify that C++20 does not yet imply modules. -- Nathan Sidwell
diff --git c/gcc/cp/parser.c w/gcc/cp/parser.c index 378e4572f8b..06bb094a299 100644 --- c/gcc/cp/parser.c +++ w/gcc/cp/parser.c @@ -3469,11 +3469,15 @@ cp_parser_diagnose_invalid_type_name (cp_parser *parser, tree id, else if (TREE_CODE (id) == IDENTIFIER_NODE && (id_equal (id, "module") || id_equal (id, "import"))) { - if (!modules_p ()) - inform (location, "%qE only available with %<-fmodules-ts%>", id); - else - inform (location, "%qE was not recognized as a module control-line", + if (modules_p ()) + inform (location, "%qE is not recognized as a module control-line", + id); + else if (cxx_dialect < cxx20) + inform (location, "C++20 %qE only available with %<-fmodules-ts%>", id); + else + inform (location, "C++20 %qE only available with %<-fmodules-ts%>" + ", which is not yet enabled with %<-std=c++20%>", id); } else if (cxx_dialect < cxx11 && TREE_CODE (id) == IDENTIFIER_NODE