aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2022-04-29 14:21:47 -0400
committerJason Merrill <jason@redhat.com>2022-04-29 15:12:07 -0400
commit8189838d823ea65e560c573d38a65edc12f5c2e3 (patch)
tree6b512751386433e09e6cf7d57afdfbde87af21a5 /gcc
parentfd0d3e9121c5aa65150d242676be6bbdc8d4a92a (diff)
downloadgcc-8189838d823ea65e560c573d38a65edc12f5c2e3.zip
gcc-8189838d823ea65e560c573d38a65edc12f5c2e3.tar.gz
gcc-8189838d823ea65e560c573d38a65edc12f5c2e3.tar.bz2
c++: tidy auto deduction
In r185768 I added the !FUNCTION_DECL check, but we might as well just check for variable; nothing else should take this path, and asserting as much doesn't regress anything. gcc/cp/ChangeLog: * decl.cc (cp_finish_decl): Only consider auto for vars.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/decl.cc5
1 files changed, 2 insertions, 3 deletions
diff --git a/gcc/cp/decl.cc b/gcc/cp/decl.cc
index 45206c2..16565bf 100644
--- a/gcc/cp/decl.cc
+++ b/gcc/cp/decl.cc
@@ -8077,7 +8077,7 @@ cp_finish_decl (tree decl, tree init, bool init_const_expr_p,
&& (DECL_INITIAL (decl) || init))
DECL_INITIALIZED_IN_CLASS_P (decl) = 1;
- if (TREE_CODE (decl) != FUNCTION_DECL
+ if (VAR_P (decl)
&& (auto_node = type_uses_auto (type)))
{
tree d_init;
@@ -8105,11 +8105,10 @@ cp_finish_decl (tree decl, tree init, bool init_const_expr_p,
d_init = resolve_nondeduced_context (d_init, tf_warning_or_error);
}
enum auto_deduction_context adc = adc_variable_type;
- if (VAR_P (decl) && DECL_DECOMPOSITION_P (decl))
+ if (DECL_DECOMPOSITION_P (decl))
adc = adc_decomp_type;
tree outer_targs = NULL_TREE;
if (PLACEHOLDER_TYPE_CONSTRAINTS_INFO (auto_node)
- && VAR_P (decl)
&& DECL_LANG_SPECIFIC (decl)
&& DECL_TEMPLATE_INFO (decl)
&& !DECL_FUNCTION_SCOPE_P (decl))