OSDN Git Service

* gcc-interface/trans.c (Call_to_gnu): Robustify test for function case
[pf3gnuchains/gcc-fork.git] / gcc / ada / gcc-interface / trans.c
index ba07832..50e8692 100644 (file)
@@ -4060,7 +4060,7 @@ call_to_gnu (Node_Id gnat_node, tree *gnu_result_type_p, tree gnu_target,
 
       /* The first entry is for the actual return value if this is a
         function, so skip it.  */
 
       /* The first entry is for the actual return value if this is a
         function, so skip it.  */
-      if (TREE_VALUE (gnu_cico_list) == void_type_node)
+      if (function_call)
        gnu_cico_list = TREE_CHAIN (gnu_cico_list);
 
       if (Nkind (Name (gnat_node)) == N_Explicit_Dereference)
        gnu_cico_list = TREE_CHAIN (gnu_cico_list);
 
       if (Nkind (Name (gnat_node)) == N_Explicit_Dereference)
@@ -4164,8 +4164,7 @@ call_to_gnu (Node_Id gnat_node, tree *gnu_result_type_p, tree gnu_target,
         return value from it and update the return type.  */
       if (TYPE_CI_CO_LIST (gnu_subprog_type))
        {
         return value from it and update the return type.  */
       if (TYPE_CI_CO_LIST (gnu_subprog_type))
        {
-         tree gnu_elmt = value_member (void_type_node,
-                                       TYPE_CI_CO_LIST (gnu_subprog_type));
+         tree gnu_elmt = TYPE_CI_CO_LIST (gnu_subprog_type);
          gnu_call = build_component_ref (gnu_call, NULL_TREE,
                                          TREE_PURPOSE (gnu_elmt), false);
          gnu_result_type = TREE_TYPE (gnu_call);
          gnu_call = build_component_ref (gnu_call, NULL_TREE,
                                          TREE_PURPOSE (gnu_elmt), false);
          gnu_result_type = TREE_TYPE (gnu_call);