summaryrefslogtreecommitdiffstats
path: root/gcc/fortran/iresolve.c
diff options
context:
space:
mode:
authorpbrook <pbrook@138bc75d-0d04-0410-961f-82ee72b054a4>2004-07-04 17:00:12 +0000
committerpbrook <pbrook@138bc75d-0d04-0410-961f-82ee72b054a4>2004-07-04 17:00:12 +0000
commit9b057c29eafcc5bc7bdfd77f387f3c2a9928fed5 (patch)
treebf14ee897d80e183e56fcc50abe726cd40989776 /gcc/fortran/iresolve.c
parent0317cd3ecbaa21b3abce954ada012051d81d46b3 (diff)
downloadppe42-gcc-9b057c29eafcc5bc7bdfd77f387f3c2a9928fed5.tar.gz
ppe42-gcc-9b057c29eafcc5bc7bdfd77f387f3c2a9928fed5.zip
PR fortran/15280
PR fortran/15665 * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_IARGC and GFC_ISYM_COMMAND_ARGUMENT_COUNT. * intrinsic.c (add_functions): Identify iargc. Add command_argument_count. (add_subroutines): Resolve getarg. Add get_command and get_command_argument. * intrinsic.h (gfc_resolve_getarg, gfc_resolve_get_command, gfc_resolve_get_command_argument): Add prototypes. * iresolve.c (gfc_resolve_getarg, gfc_resolve_get_command, gfc_resolve_get_command_argument): New functions. * trans-decl.c (gfor_fndecl_iargc): New variable. (gfc_build_intrinsic_function_decls): Set it. * trans-intrinsic.c (gfc_conv_intrinsic_iargc): New function. (gfc_conv_intrinsic_function): Use it. * trans.h (gfor_fndecl_iargc): Declare. libgfortran/ * libgfortran.h (gfc_strlen_type): Define. * intrinsics/args.c (getarg): Rename ... (getarg_i4): ... to this. (getarg_i8, get_command_argument_i4, get_command_argument_i8, get_command_i4, get_command_i8): New functions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@84087 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran/iresolve.c')
-rw-r--r--gcc/fortran/iresolve.c42
1 files changed, 42 insertions, 0 deletions
diff --git a/gcc/fortran/iresolve.c b/gcc/fortran/iresolve.c
index 2d8fffd4558..f7e7f71427e 100644
--- a/gcc/fortran/iresolve.c
+++ b/gcc/fortran/iresolve.c
@@ -1408,6 +1408,48 @@ gfc_resolve_srand (gfc_code * c)
}
+/* Resolve the getarg intrinsic subroutine. */
+
+void
+gfc_resolve_getarg (gfc_code * c)
+{
+ const char *name;
+ int kind;
+
+ kind = gfc_default_integer_kind ();
+ name = gfc_get_string (PREFIX("getarg_i%d"), kind);
+ c->resolved_sym = gfc_get_intrinsic_sub_symbol (name);
+}
+
+
+/* Resolve the get_command intrinsic subroutine. */
+
+void
+gfc_resolve_get_command (gfc_code * c)
+{
+ const char *name;
+ int kind;
+
+ kind = gfc_default_integer_kind ();
+ name = gfc_get_string (PREFIX("get_command_i%d"), kind);
+ c->resolved_sym = gfc_get_intrinsic_sub_symbol (name);
+}
+
+
+/* Resolve the get_command_argument intrinsic subroutine. */
+
+void
+gfc_resolve_get_command_argument (gfc_code * c)
+{
+ const char *name;
+ int kind;
+
+ kind = gfc_default_integer_kind ();
+ name = gfc_get_string (PREFIX("get_command_argument_i%d"), kind);
+ c->resolved_sym = gfc_get_intrinsic_sub_symbol (name);
+}
+
+
/* Determine if the arguments to SYSTEM_CLOCK are INTEGER(4) or INTEGER(8) */
void
OpenPOWER on IntegriCloud