Commit 54f58e94 by Patrick Palka

c++: Remove redundant calls to type_dependent_expression_p

This simplifies conditions that test both value_dependent_expression_p and
type_dependent_expression_p, since the former predicate now subsumes the latter.

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.
parent 65937db8
2020-03-27 Patrick Palka <ppalka@redhat.com>
* 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.
2020-03-26 Marek Polacek <polacek@redhat.com> 2020-03-26 Marek Polacek <polacek@redhat.com>
DR 1710 DR 1710
......
...@@ -10338,8 +10338,7 @@ compute_array_index_type_loc (location_t name_loc, tree name, tree size, ...@@ -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 /* We can only call value_dependent_expression_p on integral constant
expressions; treat non-constant expressions as dependent, too. */ expressions; treat non-constant expressions as dependent, too. */
if (processing_template_decl 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 /* 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 constant. Just build the index type and mark that it requires
......
...@@ -1191,8 +1191,7 @@ is_late_template_attribute (tree attr, tree decl) ...@@ -1191,8 +1191,7 @@ is_late_template_attribute (tree attr, tree decl)
&& identifier_p (t)) && identifier_p (t))
continue; continue;
if (value_dependent_expression_p (t) if (value_dependent_expression_p (t))
|| type_dependent_expression_p (t))
return true; return true;
} }
......
...@@ -10525,8 +10525,7 @@ uses_template_parms (tree t) ...@@ -10525,8 +10525,7 @@ uses_template_parms (tree t)
else if (t == error_mark_node) else if (t == error_mark_node)
dependent_p = false; dependent_p = false;
else else
dependent_p = (type_dependent_expression_p (t) dependent_p = value_dependent_expression_p (t);
|| value_dependent_expression_p (t));
processing_template_decl = saved_processing_template_decl; processing_template_decl = saved_processing_template_decl;
...@@ -27016,8 +27015,7 @@ dependent_template_arg_p (tree arg) ...@@ -27016,8 +27015,7 @@ dependent_template_arg_p (tree arg)
else if (TYPE_P (arg)) else if (TYPE_P (arg))
return dependent_type_p (arg); return dependent_type_p (arg);
else else
return (type_dependent_expression_p (arg) return value_dependent_expression_p (arg);
|| value_dependent_expression_p (arg));
} }
/* Returns true if ARGS (a collection of template arguments) contains /* Returns true if ARGS (a collection of template arguments) contains
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment