From b6b27e9830958b624fa79ddd107e139dd5622edd Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Thu, 23 Aug 2012 12:02:40 +0200 Subject: [PATCH] tree.c (copy_node_stat): Clear DECL_STRUCT_FUNCTION. * tree.c (copy_node_stat): Clear DECL_STRUCT_FUNCTION. fortran/ * trans-decl.c (trans_function_start, generate_coarray_init, create_main_function, gfc_generate_constructors): Call allocate_struct_function instead of init_function_start. From-SVN: r190619 --- gcc/ChangeLog | 4 ++++ gcc/fortran/ChangeLog | 6 ++++++ gcc/fortran/trans-decl.c | 8 ++++---- gcc/tree.c | 2 ++ 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 214b40e7abf..3fb58835c6e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2012-08-23 Jakub Jelinek + + * tree.c (copy_node_stat): Clear DECL_STRUCT_FUNCTION. + 2012-08-23 Mingjie Xing * doc/gty.texi: Fix typo. diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 9fd77d7016e..88e0bbd8d54 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2012-08-23 Jakub Jelinek + + * trans-decl.c (trans_function_start, generate_coarray_init, + create_main_function, gfc_generate_constructors): Call + allocate_struct_function instead of init_function_start. + 2012-08-22 Tobias Burnus * trans-expr.c (gfc_copy_class_to_class, diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c index 6ef00e15c2a..35a859b6d6c 100644 --- a/gcc/fortran/trans-decl.c +++ b/gcc/fortran/trans-decl.c @@ -2265,7 +2265,7 @@ trans_function_start (gfc_symbol * sym) /* Create RTL for function definition. */ make_decl_rtl (fndecl); - init_function_start (fndecl); + allocate_struct_function (fndecl, false); /* function.c requires a push at the start of the function. */ pushlevel (); @@ -4408,7 +4408,7 @@ generate_coarray_init (gfc_namespace * ns __attribute((unused))) rest_of_decl_compilation (fndecl, 0, 0); make_decl_rtl (fndecl); - init_function_start (fndecl); + allocate_struct_function (fndecl, false); pushlevel (); gfc_init_block (&caf_init_block); @@ -4982,7 +4982,7 @@ create_main_function (tree fndecl) rest_of_decl_compilation (ftn_main, 1, 0); make_decl_rtl (ftn_main); - init_function_start (ftn_main); + allocate_struct_function (ftn_main, false); pushlevel (); gfc_init_block (&body); @@ -5537,7 +5537,7 @@ gfc_generate_constructors (void) make_decl_rtl (fndecl); - init_function_start (fndecl); + allocate_struct_function (fndecl, false); pushlevel (); diff --git a/gcc/tree.c b/gcc/tree.c index c0d34916960..68d5ad0459d 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -983,6 +983,8 @@ copy_node_stat (tree node MEM_STAT_DECL) SET_DECL_INIT_PRIORITY (t, DECL_INIT_PRIORITY (node)); DECL_HAS_INIT_PRIORITY_P (t) = 1; } + if (TREE_CODE (node) == FUNCTION_DECL) + DECL_STRUCT_FUNCTION (t) = NULL; } else if (TREE_CODE_CLASS (code) == tcc_type) { -- 2.30.2