diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2009-08-02 13:14:15 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2009-08-02 13:14:15 +0000 |
commit | 2fa030864034f6cc54250eaa1ae51df568535cd8 (patch) | |
tree | 206363b66b0edfa77cb38b07adec48d2aa42b2e1 /gcc/ada/gcc-interface | |
parent | e2ab8b0935d02525be9db7bc1a46fa41a4c256e9 (diff) | |
download | gcc-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/ada/gcc-interface')
-rw-r--r-- | gcc/ada/gcc-interface/gigi.h | 3 | ||||
-rw-r--r-- | gcc/ada/gcc-interface/trans.c | 19 | ||||
-rw-r--r-- | gcc/ada/gcc-interface/utils.c | 6 |
3 files changed, 9 insertions, 19 deletions
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 |