summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/g77_intrinsics_sub.f
diff options
context:
space:
mode:
authorfxcoudert <fxcoudert@138bc75d-0d04-0410-961f-82ee72b054a4>2005-03-22 22:08:22 +0000
committerfxcoudert <fxcoudert@138bc75d-0d04-0410-961f-82ee72b054a4>2005-03-22 22:08:22 +0000
commit4dd3972ff66dfc20923ded41554dbb74b609637d (patch)
treec943a952cc8f85047adedcf7ede1cb9c387f3412 /gcc/testsuite/gfortran.dg/g77_intrinsics_sub.f
parentbc7a14a684649da880a222a5e6ba61606a9d1a40 (diff)
downloadgcc-4dd3972ff66dfc20923ded41554dbb74b609637d.tar.gz
* Makefile.am: Added new files.
* Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure.ac: add checks for signal.h headers file, as well as following functions: chdir, strerror, getlogin, gethostname, kill, link, symlink, perror, sleep, time. * configure: Regenerate. * intrinsics/chdir.c, intrinsics/gerror.c, intrinsics/getlog.c, intrinsics/hostnm.c, intrinsics/ierrno.c, intrinsics/kill.c, intrinsics/link.c, intrinsics/perror.c, intrinsics/rename.c, intrinsics/sleep.c, intrinsics/symlnk.c, intrinsics/time.c: Newly implementend g77 intrinsics. * check.c (gfc_check_chdir, gfc_check_chdir_sub, gfc_check_kill, gfc_check_kill_sub, gfc_check_link, gfc_check_link_sub, gfc_check_symlnk, gfc_check_symlnk_sub, gfc_check_rename, gfc_check_rename_sub, gfc_check_sleep_sub, gfc_check_gerror, gfc_check_getlog, gfc_check_hostnm, gfc_check_hostnm_sub, gfc_check_perror): new functions to check newly implemented g77 intrinsics. * gfortran.h: adding symbols for new intrinsics. * intrinsic.c (add_functions): adding new intrinsics. (add_subroutines): adding new intrinsics. * intrinsic.h: prototype for all checking and resolving functions. * iresolve.c (gfc_resolve_chdir, gfc_resolve_chdir_sub, gfc_resolve_hostnm, gfc_resolve_ierrno, gfc_resolve_kill, gfc_resolve_link, gfc_resolve_rename, gfc_resolve_symlnk, gfc_resolve_time, gfc_resolve_time8, gfc_resolve_rename_sub, gfc_resolve_kill_sub, gfc_resolve_link_sub, gfc_resolve_symlnk_sub, gfc_resolve_sleep_sub, gfc_resolve_gerror, gfc_resolve_getlog, gfc_resolve_hostnm_sub, gfc_resolve_perror): new functions to resolve intrinsics. * trans-intrinsic.c (gfc_conv_intrinsic_function): add case for new symbols. * g77_intrinsics_funcs.f: New test. * g77_intrinsics_sub.f: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@96893 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/gfortran.dg/g77_intrinsics_sub.f')
-rw-r--r--gcc/testsuite/gfortran.dg/g77_intrinsics_sub.f82
1 files changed, 82 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/g77_intrinsics_sub.f b/gcc/testsuite/gfortran.dg/g77_intrinsics_sub.f
new file mode 100644
index 00000000000..5a4744697bd
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/g77_intrinsics_sub.f
@@ -0,0 +1,82 @@
+! {dg-do compile}
+! Testing g77 intrinsics as subroutines
+ integer*8 i8, j8
+ integer*4 i4, j4
+ integer i, j
+ character*80 c
+
+ call gerror (c)
+ call getlog (c)
+
+ call hostnm (c, status = i8)
+ call hostnm (c, i8)
+ call hostnm (c, status = i4)
+ call hostnm (c, i4)
+ call hostnm (c, status = i)
+ call hostnm (c, i)
+ call hostnm (c)
+
+ call kill (i8, i8, status = i8)
+ call kill (i8, i8, i8)
+ call kill (i4, i8, i8)
+ call kill (i8, i4, i8)
+ call kill (i8, i8, i4)
+ call kill (i4, i4, i8)
+ call kill (i4, i8, i4)
+ call kill (i8, i4, i4)
+ call kill (i4, i4, i4)
+ call kill (i, i, i)
+ call kill (i8, i8)
+ call kill (i4, i8)
+ call kill (i8, i4)
+ call kill (i4, i4)
+ call kill (i, i)
+
+ call link ('foo', 'bar', status = i8)
+ call link ('foo', 'bar', status = i4)
+ call link ('foo', 'bar', status = i)
+ call link ('foo', 'bar', i8)
+ call link ('foo', 'bar', i4)
+ call link ('foo', 'bar', i)
+ call link ('foo', 'bar')
+
+ call perror (c)
+
+ call rename ('foo', 'bar', status = i8)
+ call rename ('foo', 'bar', status = i4)
+ call rename ('foo', 'bar', status = i)
+ call rename ('foo', 'bar', i8)
+ call rename ('foo', 'bar', i4)
+ call rename ('foo', 'bar', i)
+ call rename ('foo', 'bar')
+
+ i = 1
+ i4 = 1
+ i8 = 1
+ call sleep (i)
+ call sleep (i4)
+ call sleep (i8)
+ call sleep (-1)
+
+ call symlnk ('foo', 'bar', status = i8)
+ call symlnk ('foo', 'bar', status = i4)
+ call symlnk ('foo', 'bar', status = i)
+ call symlnk ('foo', 'bar', i8)
+ call symlnk ('foo', 'bar', i4)
+ call symlnk ('foo', 'bar', i)
+ call symlnk ('foo', 'bar')
+
+! Cleaning our mess
+ call unlink ('bar')
+
+! This should be the last test, unless you want garbage everywhere in
+! your filesystem.
+ call chdir ('..', status = i8)
+ call chdir ('..', i8)
+ call chdir ('..', status = i4)
+ call chdir ('..', i4)
+ call chdir ('..', status = i)
+ call chdir ('..', i)
+ call chdir ('..')
+
+ end