On 3/25/20 8:52 AM, Patrick Palka wrote:
This simplifies conditions that test both value_dependent_expression_p and
type_dependent_expression_p, since the former predicate now subsumes the latter.

Tested on x86_64-pc-linux-gnu, does this look OK?

I'm still a bit uneasy about testing value-dependence for a non-constant expression, but I suppose that feeling is obsolete. OK.

gcc/cp/ChangeLog:

        * decl.c (compute_array_index_type_loc): Remove redundant
        type_dependent_expression_p check that is subsumed by
        value_dependent_expression_p.
        * decl2.c (is_late_template_attribute): Likewise.
        * pt.c (uses_template_parms): Likewise.
        (dependent_template_arg_p): Likewise.
---
  gcc/cp/decl.c  | 3 +--
  gcc/cp/decl2.c | 3 +--
  gcc/cp/pt.c    | 6 ++----
  3 files changed, 4 insertions(+), 8 deletions(-)

diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index 319b7ee5c1c..69a238997b4 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -10338,8 +10338,7 @@ compute_array_index_type_loc (location_t name_loc, tree 
name, tree size,
    /* We can only call value_dependent_expression_p on integral constant
       expressions; treat non-constant expressions as dependent, too.  */
    if (processing_template_decl
-      && (type_dependent_expression_p (size)
-         || !TREE_CONSTANT (size) || value_dependent_expression_p (size)))
+      && (!TREE_CONSTANT (size) || value_dependent_expression_p (size)))
      {
        /* We cannot do any checking for a SIZE that isn't known to be
         constant. Just build the index type and mark that it requires
diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c
index 2efb2e54f37..6cf72b432e2 100644
--- a/gcc/cp/decl2.c
+++ b/gcc/cp/decl2.c
@@ -1191,8 +1191,7 @@ is_late_template_attribute (tree attr, tree decl)
          && identifier_p (t))
        continue;
- if (value_dependent_expression_p (t)
-         || type_dependent_expression_p (t))
+      if (value_dependent_expression_p (t))
        return true;
      }
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index b82c51a3042..eaa84f43dcd 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -10525,8 +10525,7 @@ uses_template_parms (tree t)
    else if (t == error_mark_node)
      dependent_p = false;
    else
-    dependent_p = (type_dependent_expression_p (t)
-                  || value_dependent_expression_p (t));
+    dependent_p = value_dependent_expression_p (t);
processing_template_decl = saved_processing_template_decl; @@ -27030,8 +27029,7 @@ dependent_template_arg_p (tree arg)
    else if (TYPE_P (arg))
      return dependent_type_p (arg);
    else
-    return (type_dependent_expression_p (arg)
-           || value_dependent_expression_p (arg));
+    return value_dependent_expression_p (arg);
  }
/* Returns true if ARGS (a collection of template arguments) contains


Reply via email to