This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[patch] stmt.c: Remove expand_decl_init.
- From: Kazu Hirata <kazu at cs dot umass dot edu>
- To: gcc-patches at gcc dot gnu dot org
- Date: Wed, 06 Oct 2004 15:08:21 -0400 (EDT)
- Subject: [patch] stmt.c: Remove expand_decl_init.
Hi,
B
Attached is a patch to remove expand_decl_init as it is unused.
In gcc-3.4, it used to be called from various language front ends, but
now it is unused.
Bootstrapped on i686-pc-linux-gnu. OK to apply?
Kazu Hirata
2004-10-05 Kazu Hirata <kazu@cs.umass.edu>
* stmt.c (expand_decl_init): Remove.
* tree.h: Remove the corresponding prototype.
Index: stmt.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/stmt.c,v
retrieving revision 1.396
diff -u -r1.396 stmt.c
--- stmt.c 25 Sep 2004 14:36:37 -0000 1.396
+++ stmt.c 5 Oct 2004 23:47:50 -0000
@@ -2052,48 +2052,6 @@
emit_stack_restore (SAVE_BLOCK, sa, NULL_RTX);
}
-/* Emit code to perform the initialization of a declaration DECL. */
-
-void
-expand_decl_init (tree decl)
-{
- int was_used = TREE_USED (decl);
-
- /* If this is a CONST_DECL, we don't have to generate any code. Likewise
- for static decls. */
- if (TREE_CODE (decl) == CONST_DECL
- || TREE_STATIC (decl))
- return;
-
- /* Compute and store the initial value now. */
-
- push_temp_slots ();
-
- if (DECL_INITIAL (decl) == error_mark_node)
- {
- enum tree_code code = TREE_CODE (TREE_TYPE (decl));
-
- if (code == INTEGER_TYPE || code == REAL_TYPE || code == ENUMERAL_TYPE
- || code == POINTER_TYPE || code == REFERENCE_TYPE)
- expand_assignment (decl, convert (TREE_TYPE (decl), integer_zero_node),
- 0);
- }
- else if (DECL_INITIAL (decl) && TREE_CODE (DECL_INITIAL (decl)) != TREE_LIST)
- {
- emit_line_note (DECL_SOURCE_LOCATION (decl));
- expand_assignment (decl, DECL_INITIAL (decl), 0);
- }
-
- /* Don't let the initialization count as "using" the variable. */
- TREE_USED (decl) = was_used;
-
- /* Free any temporaries we made while initializing the decl. */
- preserve_temp_slots (NULL_RTX);
- free_temp_slots ();
- pop_temp_slots ();
-}
-
-
/* DECL is an anonymous union. CLEANUP is a cleanup for DECL.
DECL_ELTS is the list of elements that belong to DECL's type.
In each, the TREE_VALUE is a VAR_DECL, and the TREE_PURPOSE a cleanup. */
Index: tree.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree.h,v
retrieving revision 1.635
diff -u -r1.635 tree.h
--- tree.h 1 Oct 2004 07:42:49 -0000 1.635
+++ tree.h 5 Oct 2004 23:47:51 -0000
@@ -3466,7 +3466,6 @@
extern void expand_expr_stmt (tree);
extern void expand_expr_stmt_value (tree, int, int);
extern int warn_if_unused_value (tree, location_t);
-extern void expand_decl_init (tree);
extern void expand_label (tree);
extern void expand_goto (tree);
extern void expand_asm (tree, int);