c++: Clarify note about -fmodules-ts [PR 99472]
authorNathan Sidwell <nathan@acm.org>
Tue, 9 Mar 2021 13:08:09 +0000 (05:08 -0800)
committerNathan Sidwell <nathan@acm.org>
Tue, 9 Mar 2021 13:11:47 +0000 (05:11 -0800)
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.

gcc/cp/parser.c

index f636bb7..0a7d18a 100644 (file)
@@ -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