]> gcc.gnu.org Git - gcc.git/commitdiff
trans.c (Subprogram_Body_to_gnu): Add comment.
authorEric Botcazou <ebotcazou@adacore.com>
Sun, 20 Nov 2011 10:16:48 +0000 (10:16 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Sun, 20 Nov 2011 10:16:48 +0000 (10:16 +0000)
* gcc-interface/trans.c (Subprogram_Body_to_gnu): Add comment.
(gnat_to_gnu) <N_Return_Statement>: Add 'else' to avoid doing a useless
test.  Tweak default case.
<N_Goto_Statement>: Use better formatting.
* gcc-interface/utils2.c (maybe_wrap_malloc): Use INIT_EXPR instead of
MODIFY_EXPR to initialize the storage.
(build_allocator): Likewise.

From-SVN: r181527

gcc/ada/ChangeLog
gcc/ada/gcc-interface/trans.c
gcc/ada/gcc-interface/utils2.c

index 3e9e7ea45cd6e8afeca5fb671fe883f3dd6ad1ad..49cd9570b38727892fcfc28734a1cc2f712d65e8 100644 (file)
@@ -1,3 +1,13 @@
+2011-10-20  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/trans.c (Subprogram_Body_to_gnu): Add comment.
+       (gnat_to_gnu) <N_Return_Statement>: Add 'else' to avoid doing a useless
+       test.  Tweak default case.
+       <N_Goto_Statement>: Use better formatting.
+       * gcc-interface/utils2.c (maybe_wrap_malloc): Use INIT_EXPR instead of
+       MODIFY_EXPR to initialize the storage.
+       (build_allocator): Likewise.
+
 2011-11-20  Eric Botcazou  <ebotcazou@adacore.com>
 
        * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: Adjust
index 8a74e6ccb45b79ad875de1b1d284afa77e4f5830..bc6172a7ac03d72da267364f16389c37a3c11087 100644 (file)
@@ -3278,6 +3278,7 @@ Subprogram_Body_to_gnu (Node_Id gnat_node)
        save_gnu_tree (gnat_param, NULL_TREE, false);
     }
 
+  /* Disconnect the variable created for the return value.  */
   if (gnu_return_var_elmt)
     TREE_VALUE (gnu_return_var_elmt) = void_type_node;
 
@@ -5889,12 +5890,12 @@ gnat_to_gnu (Node_Id gnat_node)
                                               gnat_node, false);
              }
 
-           /* If the function returns by invisible reference, dereference
+           /* Otherwise, if it returns by invisible reference, dereference
               the pointer it is passed using the type of the return value
               and build the copy operation manually.  This ensures that we
               don't copy too much data, for example if the return type is
               unconstrained with a maximum size.  */
-           if (TREE_ADDRESSABLE (gnu_subprog_type))
+           else if (TREE_ADDRESSABLE (gnu_subprog_type))
              {
                tree gnu_ret_deref
                  = build_unary_op (INDIRECT_REF, TREE_TYPE (gnu_ret_val),
@@ -5905,11 +5906,9 @@ gnat_to_gnu (Node_Id gnat_node)
                gnu_ret_val = NULL_TREE;
              }
          }
+
        else
-         {
-           gnu_ret_obj = NULL_TREE;
-           gnu_ret_val = NULL_TREE;
-         }
+         gnu_ret_obj = gnu_ret_val = NULL_TREE;
 
        /* If we have a return label defined, convert this into a branch to
           that label.  The return proper will be handled elsewhere.  */
@@ -5934,8 +5933,8 @@ gnat_to_gnu (Node_Id gnat_node)
       break;
 
     case N_Goto_Statement:
-      gnu_result = build1 (GOTO_EXPR, void_type_node,
-                          gnat_to_gnu (Name (gnat_node)));
+      gnu_result
+       = build1 (GOTO_EXPR, void_type_node, gnat_to_gnu (Name (gnat_node)));
       break;
 
     /***************************/
index c303e2f20a3fed227928b916f69db972f16ec174..f9e48b79fe5d9d7079898901b1d38ef7dd8cd4b1 100644 (file)
@@ -2126,7 +2126,7 @@ maybe_wrap_malloc (tree data_size, tree data_type, Node_Id gnat_node)
 
       return
        build2 (COMPOUND_EXPR, TREE_TYPE (aligning_field_addr),
-               build_binary_op (MODIFY_EXPR, NULL_TREE,
+               build_binary_op (INIT_EXPR, NULL_TREE,
                                 storage_ptr_slot, storage_ptr),
                aligning_field_addr);
     }
@@ -2279,12 +2279,12 @@ build_allocator (tree type, tree init, tree result_type, Entity_Id gnat_proc,
          CONSTRUCTOR_APPEND_ELT (v, DECL_CHAIN (TYPE_FIELDS (storage_type)),
                                  init);
          storage_init
-           = build_binary_op (MODIFY_EXPR, NULL_TREE, storage_deref,
+           = build_binary_op (INIT_EXPR, NULL_TREE, storage_deref,
                               gnat_build_constructor (storage_type, v));
        }
       else
        storage_init
-         = build_binary_op (MODIFY_EXPR, NULL_TREE,
+         = build_binary_op (INIT_EXPR, NULL_TREE,
                             build_component_ref (storage_deref, NULL_TREE,
                                                  TYPE_FIELDS (storage_type),
                                                  false),
@@ -2332,7 +2332,7 @@ build_allocator (tree type, tree init, tree result_type, Entity_Id gnat_proc,
       storage_deref = build_unary_op (INDIRECT_REF, NULL_TREE, storage);
       TREE_THIS_NOTRAP (storage_deref) = 1;
       storage_init
-       = build_binary_op (MODIFY_EXPR, NULL_TREE, storage_deref, init);
+       = build_binary_op (INIT_EXPR, NULL_TREE, storage_deref, init);
       return build2 (COMPOUND_EXPR, result_type, storage_init, storage);
     }
 
This page took 0.09472 seconds and 5 git commands to generate.