diff mbox

[C++] fix some nits

Message ID 8edf9b32-3ea3-4181-6fef-42fb0f2fa6ec@acm.org
State New
Headers show

Commit Message

Nathan Sidwell Sept. 26, 2016, 10:35 a.m. UTC
In working on PR66443, I encountered a few nits.  Fixed thusly:

1) a misaligned } in init.c

2) process_subob_fn used goto...label, when regular if {return} works fine.  (I 
guess the control flow got simplified at some point)

3) implicitly_declare_fn repeats a lambda deleted fn check that 
synthesized_method_walk has already done.

The last one was the most suspicious, I checked that constexpr_p and deleted_p 
already had the expected values when that if triggered, and that tests actually 
got there.  bootstrap and testing showed the check redundant.

Committed to trunk.

nathan
diff mbox

Patch

2016-09-26  Nathan Sidwell  <nathan@acm.org>

	* init.c (expand_default_init): Fix } indentation.
	* method.c (process_subob_fn): Simplify control structure to
	remove gotos.
	(implicitly_declare_fn): Remove duplicated lambda ctor check.

Index: init.c
===================================================================
--- init.c	(revision 240488)
+++ init.c	(working copy)
@@ -1747,7 +1747,7 @@  expand_default_init (tree binfo, tree tr
 	ctor_name = base_ctor_identifier;
       rval = build_special_member_call (exp, ctor_name, &parms, binfo, flags,
 					complain);
-  }
+    }
 
   if (parms != NULL)
     release_tree_vector (parms);
Index: method.c
===================================================================
--- method.c	(revision 240488)
+++ method.c	(working copy)
@@ -1129,7 +1129,11 @@  process_subob_fn (tree fn, tree *spec_p,
 		  bool diag, tree arg, bool dtor_from_ctor = false)
 {
   if (!fn || fn == error_mark_node)
-    goto bad;
+    {
+      if (deleted_p)
+	*deleted_p = true;
+      return;
+    }
 
   if (spec_p)
     {
@@ -1162,12 +1166,6 @@  process_subob_fn (tree fn, tree *spec_p,
 	  explain_invalid_constexpr_fn (fn);
 	}
     }
-
-  return;
-
- bad:
-  if (deleted_p)
-    *deleted_p = true;
 }
 
 /* Subroutine of synthesized_method_walk to allow recursion into anonymous
@@ -1931,12 +1929,6 @@  implicitly_declare_fn (special_function_
   DECL_DEFAULTED_FN (fn) = 1;
   if (cxx_dialect >= cxx11)
     {
-      /* "The closure type associated with a lambda-expression has a deleted
-	 default constructor and a deleted copy assignment operator."  */
-      if ((kind == sfk_constructor
-	   || kind == sfk_copy_assignment)
-	  && LAMBDA_TYPE_P (type))
-	deleted_p = true;
       DECL_DELETED_FN (fn) = deleted_p;
       DECL_DECLARED_CONSTEXPR_P (fn) = constexpr_p;
     }