[pushed] c++: be more strict about 'concept bool'

Message ID 20221128205142.541060-1-jason@redhat.com
State Committed
Commit 297bbe2d0dea083344e66e3e72fa791b5855a3de
Headers
Series [pushed] c++: be more strict about 'concept bool' |

Commit Message

Jason Merrill Nov. 28, 2022, 8:51 p.m. UTC
  Tested x86_64-pc-linux-gnu, applying to trunk.

-- 8< --

Some clang folks mailed me asking about being less permissive about
'concept bool', so let's bump it up from pedwarn to permerror.

gcc/cp/ChangeLog:

	* parser.cc (cp_parser_decl_specifier_seq): Change 'concept bool'
	diagnostic from pedwarn to permerror.
---
 gcc/cp/parser.cc | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)


base-commit: 47d81b1b89d615cea27307c713a4afe591e1cd2d
  

Patch

diff --git a/gcc/cp/parser.cc b/gcc/cp/parser.cc
index aec625e2d9c..82459b7683a 100644
--- a/gcc/cp/parser.cc
+++ b/gcc/cp/parser.cc
@@ -15831,11 +15831,11 @@  cp_parser_decl_specifier_seq (cp_parser* parser,
             {
 	      cp_token *next = cp_lexer_peek_token (parser->lexer);
 	      if (next->keyword == RID_BOOL)
-		pedwarn (next->location, 0, "the %<bool%> keyword is not "
-			 "allowed in a C++20 concept definition");
+		permerror (next->location, "the %<bool%> keyword is not "
+			   "allowed in a C++20 concept definition");
 	      else
-		pedwarn (token->location, 0, "C++20 concept definition syntax "
-			 "is %<concept <name> = <expr>%>");
+		error_at (token->location, "C++20 concept definition syntax "
+			  "is %<concept <name> = <expr>%>");
             }
 
 	  /* In C++20 a concept definition is just 'concept name = expr;'