aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2012-08-23 12:02:40 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2012-08-23 12:02:40 +0200
commitb6b27e9830958b624fa79ddd107e139dd5622edd (patch)
tree9eadda7c37c09b1cda1c24a9e1acb8c6ada317f2
parent8597cab14b29f161d4847976f604058e0ac983ea (diff)
downloadgcc-b6b27e9830958b624fa79ddd107e139dd5622edd.zip
gcc-b6b27e9830958b624fa79ddd107e139dd5622edd.tar.gz
gcc-b6b27e9830958b624fa79ddd107e139dd5622edd.tar.bz2
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
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/trans-decl.c8
-rw-r--r--gcc/tree.c2
4 files changed, 16 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 214b40e..3fb5883 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2012-08-23 Jakub Jelinek <jakub@redhat.com>
+
+ * tree.c (copy_node_stat): Clear DECL_STRUCT_FUNCTION.
+
2012-08-23 Mingjie Xing <mingjie.xing@gmail.com>
* doc/gty.texi: Fix typo.
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 9fd77d7..88e0bbd 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2012-08-23 Jakub Jelinek <jakub@redhat.com>
+
+ * 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 <burnus@net-b.de>
* trans-expr.c (gfc_copy_class_to_class,
diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c
index 6ef00e1..35a859b 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 c0d3491..68d5ad0 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)
{