From 4727d4c6a81774e9b1de91a5e7089c6d17cc6d37 Mon Sep 17 00:00:00 2001 From: Nathan Sidwell Date: Fri, 20 May 2016 20:58:21 +0000 Subject: [PATCH] constexpr.c (cxx_bind_parameters_in_call): Avoid gratuitous if ... * constexpr.c (cxx_bind_parameters_in_call): Avoid gratuitous if ... goto. (cxx_eval_call_expression): Fix comment grammar. From-SVN: r236543 --- gcc/cp/ChangeLog | 6 ++++++ gcc/cp/constexpr.c | 26 +++++++++++++------------- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 06c38c67a9b..9618a28dadd 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2016-05-20 Nathan Sidwell + + * constexpr.c (cxx_bind_parameters_in_call): Avoid gratuitous if + ... goto. + (cxx_eval_call_expression): Fix comment grammar. + 2016-05-20 Paolo Carlini PR c++/70572 diff --git a/gcc/cp/constexpr.c b/gcc/cp/constexpr.c index 6054d1a9e3f..7b562605b7b 100644 --- a/gcc/cp/constexpr.c +++ b/gcc/cp/constexpr.c @@ -1201,18 +1201,18 @@ cxx_bind_parameters_in_call (const constexpr_ctx *ctx, tree t, /* Just discard ellipsis args after checking their constantitude. */ if (!parms) continue; - if (*non_constant_p) - /* Don't try to adjust the type of non-constant args. */ - goto next; - - /* Make sure the binding has the same type as the parm. */ - if (TREE_CODE (type) != REFERENCE_TYPE) - arg = adjust_temp_type (type, arg); - if (!TREE_CONSTANT (arg)) - *non_constant_args = true; - *p = build_tree_list (parms, arg); - p = &TREE_CHAIN (*p); - next: + + if (!*non_constant_p) + { + /* Make sure the binding has the same type as the parm. But + only for constant args. */ + if (TREE_CODE (type) != REFERENCE_TYPE) + arg = adjust_temp_type (type, arg); + if (!TREE_CONSTANT (arg)) + *non_constant_args = true; + *p = build_tree_list (parms, arg); + p = &TREE_CHAIN (*p); + } parms = TREE_CHAIN (parms); } } @@ -1420,7 +1420,7 @@ cxx_eval_call_expression (const constexpr_ctx *ctx, tree t, *slot = entry = ggc_alloc (); *entry = new_call; } - /* Calls which are in progress have their result set to NULL + /* Calls that are in progress have their result set to NULL, so that we can detect circular dependencies. */ else if (entry->result == NULL) { -- 2.30.2