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.
===================================================================
@@ -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);
===================================================================
@@ -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;
}