trans-io.c (gfc_build_io_library_fndecls): Fix decl of IOCALL_SET_NML_VAL.
authorTobias Burnus <burnus@net-b.de>
Sun, 17 Aug 2014 16:40:04 +0000 (18:40 +0200)
committerTobias Burnus <burnus@gcc.gnu.org>
Sun, 17 Aug 2014 16:40:04 +0000 (18:40 +0200)
2014-08-17  Tobias Burnus  <burnus@net-b.de>

        * trans-io.c (gfc_build_io_library_fndecls): Fix decl of
        IOCALL_SET_NML_VAL.
        (transfer_namelist_element): Use proper int type as argument.

From-SVN: r214075

gcc/fortran/ChangeLog
gcc/fortran/trans-io.c

index ec126b9..ce6857e 100644 (file)
@@ -1,3 +1,9 @@
+2014-08-17  Tobias Burnus  <burnus@net-b.de>
+
+       * trans-io.c (gfc_build_io_library_fndecls): Fix decl of
+       IOCALL_SET_NML_VAL.
+       (transfer_namelist_element): Use proper int type as argument.
+
 2014-08-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
 
        PR fortran/62142
index cbe54ab..4340afb 100644 (file)
@@ -467,7 +467,7 @@ gfc_build_io_library_fndecls (void)
   iocall[IOCALL_SET_NML_VAL] = gfc_build_library_function_decl_with_spec (
        get_identifier (PREFIX("st_set_nml_var")), ".w.R",
        void_type_node, 6, dt_parm_type, pvoid_type_node, pvoid_type_node,
-       void_type_node, gfc_charlen_type_node, gfc_int4_type_node);
+       gfc_int4_type_node, gfc_charlen_type_node, gfc_int4_type_node);
 
   iocall[IOCALL_SET_NML_VAL_DIM] = gfc_build_library_function_decl_with_spec (
        get_identifier (PREFIX("st_set_nml_var_dim")), ".w",
@@ -1557,6 +1557,7 @@ transfer_namelist_element (stmtblock_t * block, const char * var_name,
   tree dtype;
   tree dt_parm_addr;
   tree decl = NULL_TREE;
+  tree gfc_int4_type_node = gfc_get_int_type (4);
   int n_dim;
   int itype;
   int rank = 0;
@@ -1605,7 +1606,8 @@ transfer_namelist_element (stmtblock_t * block, const char * var_name,
   tmp = build_call_expr_loc (input_location,
                         iocall[IOCALL_SET_NML_VAL], 6,
                         dt_parm_addr, addr_expr, string,
-                        IARG (ts->kind), tmp, dtype);
+                        build_int_cst (gfc_int4_type_node, ts->kind),
+                        tmp, dtype);
   gfc_add_expr_to_block (block, tmp);
 
   /* If the object is an array, transfer rank times:
@@ -1616,7 +1618,7 @@ transfer_namelist_element (stmtblock_t * block, const char * var_name,
       tmp = build_call_expr_loc (input_location,
                             iocall[IOCALL_SET_NML_VAL_DIM], 5,
                             dt_parm_addr,
-                            IARG (n_dim),
+                            build_int_cst (gfc_int4_type_node, n_dim),
                             gfc_conv_array_stride (decl, n_dim),
                             gfc_conv_array_lbound (decl, n_dim),
                             gfc_conv_array_ubound (decl, n_dim));