aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2009-08-02 13:14:15 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2009-08-02 13:14:15 +0000
commit2fa030864034f6cc54250eaa1ae51df568535cd8 (patch)
tree206363b66b0edfa77cb38b07adec48d2aa42b2e1 /gcc
parente2ab8b0935d02525be9db7bc1a46fa41a4c256e9 (diff)
downloadgcc-2fa030864034f6cc54250eaa1ae51df568535cd8.zip
gcc-2fa030864034f6cc54250eaa1ae51df568535cd8.tar.gz
gcc-2fa030864034f6cc54250eaa1ae51df568535cd8.tar.bz2
gigi.h (end_subprog_body): Tweak comment.
* gcc-interface/gigi.h (end_subprog_body): Tweak comment. * gcc-interface/utils.c (end_subprog_body): Likewise. * gcc-interface/trans.c (gigi): Likewise. (gnat_to_gnu): Likewise. From-SVN: r150352
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/ChangeLog7
-rw-r--r--gcc/ada/gcc-interface/gigi.h3
-rw-r--r--gcc/ada/gcc-interface/trans.c19
-rw-r--r--gcc/ada/gcc-interface/utils.c6
4 files changed, 16 insertions, 19 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 35aa542..aed7ce6 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,10 @@
+2009-08-02 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/gigi.h (end_subprog_body): Tweak comment.
+ * gcc-interface/utils.c (end_subprog_body): Likewise.
+ * gcc-interface/trans.c (gigi): Likewise.
+ (gnat_to_gnu): Likewise.
+
2009-07-30 Ben Brosgol <brosgol@adacore.com>
* gnat_ugn.texi: Correct minor texi glitch.
diff --git a/gcc/ada/gcc-interface/gigi.h b/gcc/ada/gcc-interface/gigi.h
index 05a4686..a6171b2 100644
--- a/gcc/ada/gcc-interface/gigi.h
+++ b/gcc/ada/gcc-interface/gigi.h
@@ -677,8 +677,7 @@ extern tree create_label_decl (tree label_name);
appearing in the subprogram. */
extern void begin_subprog_body (tree subprog_decl);
-/* Finish the definition of the current subprogram BODY and compile it all the
- way to assembler language output. */
+/* Finish the definition of the current subprogram BODY and finalize it. */
extern void end_subprog_body (tree body);
/* Build a template of type TEMPLATE_TYPE from the array bounds of ARRAY_TYPE.
diff --git a/gcc/ada/gcc-interface/trans.c b/gcc/ada/gcc-interface/trans.c
index 0dcc593..84053a4 100644
--- a/gcc/ada/gcc-interface/trans.c
+++ b/gcc/ada/gcc-interface/trans.c
@@ -626,8 +626,7 @@ gigi (Node_Id gnat_root, int max_gnat_node, int number_name,
/* Finally see if we have any elaboration procedures to deal with. */
for (info = elab_info_list; info; info = info->next)
{
- tree gnu_body = DECL_SAVED_TREE (info->elab_proc);
- tree gnu_stmts;
+ tree gnu_body = DECL_SAVED_TREE (info->elab_proc), gnu_stmts;
/* Unshare SAVE_EXPRs between subprograms. These are not unshared by
the gimplifier for obvious reasons, but it turns out that we need to
@@ -639,21 +638,16 @@ gigi (Node_Id gnat_root, int max_gnat_node, int number_name,
an upstream bug for which we would not change the outcome. */
walk_tree_without_duplicates (&gnu_body, unshare_save_expr, NULL);
-
- /* We should have a BIND_EXPR, but it may or may not have any statements
- in it. If it doesn't have any, we have nothing to do. */
+ /* We should have a BIND_EXPR but it may not have any statements in it.
+ If it doesn't have any, we have nothing to do except for setting the
+ flag on the GNAT node. Otherwise, process the function as others. */
gnu_stmts = gnu_body;
if (TREE_CODE (gnu_stmts) == BIND_EXPR)
gnu_stmts = BIND_EXPR_BODY (gnu_stmts);
-
- /* If there are no statements, there is no elaboration code. */
if (!gnu_stmts || !STATEMENT_LIST_HEAD (gnu_stmts))
- {
- Set_Has_No_Elaboration_Code (info->gnat_node, 1);
- }
+ Set_Has_No_Elaboration_Code (info->gnat_node, 1);
else
{
- /* Process the function as others. */
begin_subprog_body (info->elab_proc);
end_subprog_body (gnu_body);
}
@@ -5294,12 +5288,11 @@ gnat_to_gnu (Node_Id gnat_node)
gnu_result = alloc_stmt_list ();
break;
- /* SCIL nodes require no processing by this backend */
-
case N_SCIL_Dispatch_Table_Object_Init:
case N_SCIL_Dispatch_Table_Tag_Init:
case N_SCIL_Dispatching_Call:
case N_SCIL_Tag_Init:
+ /* SCIL nodes require no processing for GCC. */
gnu_result = alloc_stmt_list ();
break;
diff --git a/gcc/ada/gcc-interface/utils.c b/gcc/ada/gcc-interface/utils.c
index 1548f6d..e61a0fa 100644
--- a/gcc/ada/gcc-interface/utils.c
+++ b/gcc/ada/gcc-interface/utils.c
@@ -2069,8 +2069,7 @@ gnat_genericize (tree fndecl)
pointer_set_destroy (p_set);
}
-/* Finish the definition of the current subprogram BODY and compile it all the
- way to assembler language output. */
+/* Finish the definition of the current subprogram BODY and finalize it. */
void
end_subprog_body (tree body)
@@ -2109,8 +2108,7 @@ end_subprog_body (tree body)
/* Dump functions before gimplification. */
dump_function (TDI_original, fndecl);
- /* We do different things for nested and non-nested functions.
- ??? This should be in cgraph. */
+ /* ??? This special handling of nested functions is probably obsolete. */
if (!DECL_CONTEXT (fndecl))
cgraph_finalize_function (fndecl, false);
else