From 9718bc4b03c1a94f7cf64860bbc828aa53c56234 Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Sat, 22 Jan 2022 17:11:54 -0500 Subject: c++: array temporary at file scope [PR104182] This is the same issue as PR104031, but that patch doesn't fix this testcase because in this case, current_function_decl isn't set when we get to cp_genericize_target_expr. But there seems to be no need for is_local_temp to check for function scope; !TREE_STATIC should be enough. PR c++/104182 gcc/cp/ChangeLog: * cp-gimplify.cc (cp_genericize_target_expr): Make sure nothing has set DECL_INITIAL on a TARGET_EXPR slot. * tree.cc (is_local_temp): Don't check DECL_CONTEXT. gcc/testsuite/ChangeLog: * g++.dg/cpp0x/initlist127.C: New test. --- gcc/cp/tree.cc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'gcc/cp/tree.cc') diff --git a/gcc/cp/tree.cc b/gcc/cp/tree.cc index f88006a..5d453e4 100644 --- a/gcc/cp/tree.cc +++ b/gcc/cp/tree.cc @@ -557,8 +557,7 @@ bool is_local_temp (tree decl) { return (VAR_P (decl) && DECL_ARTIFICIAL (decl) - && !TREE_STATIC (decl) - && DECL_FUNCTION_SCOPE_P (decl)); + && !TREE_STATIC (decl)); } /* Set various status flags when building an AGGR_INIT_EXPR object T. */ -- cgit v1.1