diff mbox series

[C++] a missed c++2a->c++20

Message ID 482bfb5d-bdfd-78ad-6252-4d367838ce1a@acm.org
State New
Headers show
Series [C++] a missed c++2a->c++20 | expand

Commit Message

Nathan Sidwell May 14, 2020, 3:07 p.m. UTC
Jason missed a c++2a mention.  I couldn't resist changing the loop 
following to place the initializers inside the fors.

pushed to master
nathan
diff mbox series

Patch

2020-05-14  Nathan Sidwell  <nathan@acm.org>

	* parser.c (cp_parser_diagnose_invalid_typename): Mention
	std=c++20 not 2a, reformat dependent binfo inform loops.

diff --git i/gcc/cp/parser.c w/gcc/cp/parser.c
index bc1ee21e8ce..41712bfdc2c 100644
--- i/gcc/cp/parser.c
+++ w/gcc/cp/parser.c
@@ -3376,41 +3376,35 @@  cp_parser_diagnose_invalid_type_name (cp_parser *parser, tree id,
 	inform (location, "%<concept%> only available with %<-std=c++20%> or "
 		"%<-fconcepts%>");
       else if (!flag_concepts && id == ridpointers[(int)RID_REQUIRES])
-	inform (location, "%<requires%> only available with %<-std=c++2a%> or "
+	inform (location, "%<requires%> only available with %<-std=c++20%> or "
 		"%<-fconcepts%>");
       else if (processing_template_decl && current_class_type
 	       && TYPE_BINFO (current_class_type))
 	{
-	  tree b;
-
-	  for (b = TREE_CHAIN (TYPE_BINFO (current_class_type));
-	       b;
-	       b = TREE_CHAIN (b))
+	  for (tree b = TREE_CHAIN (TYPE_BINFO (current_class_type));
+	       b; b = TREE_CHAIN (b))
 	    {
 	      tree base_type = BINFO_TYPE (b);
 	      if (CLASS_TYPE_P (base_type)
 		  && dependent_type_p (base_type))
 		{
-		  tree field;
 		  /* Go from a particular instantiation of the
 		     template (which will have an empty TYPE_FIELDs),
 		     to the main version.  */
 		  base_type = CLASSTYPE_PRIMARY_TEMPLATE_TYPE (base_type);
-		  for (field = TYPE_FIELDS (base_type);
-		       field;
-		       field = DECL_CHAIN (field))
+		  for (tree field = TYPE_FIELDS (base_type);
+		       field; field = DECL_CHAIN (field))
 		    if (TREE_CODE (field) == TYPE_DECL
 			&& DECL_NAME (field) == id)
 		      {
 			inform (location,
 				"(perhaps %<typename %T::%E%> was intended)",
 				BINFO_TYPE (b), id);
-			break;
+			goto found;
 		      }
-		  if (field)
-		    break;
 		}
 	    }
+	found:;
 	}
     }
   /* Here we diagnose qualified-ids where the scope is actually correct,