diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 733a53c83af051bd25fe4d9380707ff8453d9f75..0e9b731a6238faeb8435c70ac7ec30f57d2b4c7f 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2004-06-12 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de> + + PR fortran/14923 + * gfortran.fortran-torture/execute/date_time_1.f90: New test. + 2004-06-12 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de> PR fortran/14957 diff --git a/gcc/testsuite/gfortran.fortran-torture/execute/date_time_1.f90 b/gcc/testsuite/gfortran.fortran-torture/execute/date_time_1.f90 new file mode 100644 index 0000000000000000000000000000000000000000..78310c1d81ac257cbf2cc25a38b146259ca988e3 --- /dev/null +++ b/gcc/testsuite/gfortran.fortran-torture/execute/date_time_1.f90 @@ -0,0 +1,26 @@ +! Check the DATE_AND_TIME intrinsic. +! Call teh intrinsic with a variety of arguments, but does not check the +! returned values. +CHARACTER(8) :: d, d1 +CHARACTER(10) :: t, t1 +CHARACTER(5) :: z, z1 +INTEGER :: v(8), v1(8) + +CALL DATE_AND_TIME + +CALL DATE_AND_TIME(DATE=d) +CALL DATE_AND_TIME(TIME=t) +CALL DATE_AND_TIME(ZONE=z) + +CALL DATE_AND_TIME(VALUES=v) + +CALL DATE_AND_TIME(DATE=d, TIME=t) +CALL DATE_AND_TIME(DATE=d, VALUES=v) +CALL DATE_AND_TIME(TIME=t, ZONE=z) + +CALL DATE_AND_TIME(DATE=d, TIME=t, ZONE=z) +CALL DATE_AND_TIME(TIME=t, ZONE=z, VALUES=v) + +CALL DATE_AND_TIME(DATE=d, TIME=t, ZONE=z, VALUES=v) + +END diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index 3a4e4a8bf3e3b1a035e6e9eabde62938f5800f6e..8cf4131eae1127027e6f40b81be7eceda169bd27 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,12 @@ +2004-06-12 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de> + Steven Bosscher <stevenb@suse.de> + + PR fortran/14923 + * intrinsics/date_and_time.c: New file. + * Makefile.am (gfor_helper_src): Add intrinsics/date_and_time.c. + * Makefile.in, aclocal.m4: Regenerate. + * libgfortran.h: Prototype date_and_time(). + 2004-06-12 Bud Davis <bdavis9659@comcast.net> PR fortran/15665 diff --git a/libgfortran/Makefile.am b/libgfortran/Makefile.am index f77335d5f9c4c6f26cdc4f4c7f47834867d9ef2e..63bf6b5afe69088307f40c482162b77eaafcf5df 100644 --- a/libgfortran/Makefile.am +++ b/libgfortran/Makefile.am @@ -39,6 +39,7 @@ intrinsics/abort.c \ intrinsics/args.c \ intrinsics/cpu_time.c \ intrinsics/cshift0.c \ +intrinsics/date_and_time.c \ intrinsics/eoshift0.c \ intrinsics/eoshift2.c \ intrinsics/ishftc.c \ diff --git a/libgfortran/Makefile.in b/libgfortran/Makefile.in index 9401231c684a5fba4851377612d524fe92fa5af1..f30ae3077c6faf068dab4ce70346ee55c61e4653 100644 --- a/libgfortran/Makefile.in +++ b/libgfortran/Makefile.in @@ -119,11 +119,11 @@ am__objects_32 = backspace.lo close.lo endfile.lo format.lo inquire.lo \ list_read.lo lock.lo open.lo read.lo rewind.lo transfer.lo \ unit.lo unix.lo write.lo am__objects_33 = associated.lo abort.lo args.lo cpu_time.lo cshift0.lo \ - eoshift0.lo eoshift2.lo ishftc.lo pack_generic.lo size.lo \ - spread_generic.lo string_intrinsics.lo random.lo \ - reshape_generic.lo reshape_packed.lo selected_kind.lo \ - system_clock.lo transpose_generic.lo unpack_generic.lo \ - in_pack_generic.lo in_unpack_generic.lo + date_and_time.lo eoshift0.lo eoshift2.lo ishftc.lo \ + pack_generic.lo size.lo spread_generic.lo string_intrinsics.lo \ + random.lo reshape_generic.lo reshape_packed.lo \ + selected_kind.lo system_clock.lo transpose_generic.lo \ + unpack_generic.lo in_pack_generic.lo in_unpack_generic.lo am__objects_34 = am__objects_35 = _abs_c4.lo _abs_c8.lo _abs_i4.lo _abs_i8.lo \ _abs_r4.lo _abs_r8.lo _exp_r4.lo _exp_r8.lo _exp_c4.lo \ @@ -311,6 +311,7 @@ intrinsics/abort.c \ intrinsics/args.c \ intrinsics/cpu_time.c \ intrinsics/cshift0.c \ +intrinsics/date_and_time.c \ intrinsics/eoshift0.c \ intrinsics/eoshift2.c \ intrinsics/ishftc.c \ @@ -2001,6 +2002,15 @@ cshift0.obj: intrinsics/cshift0.c cshift0.lo: intrinsics/cshift0.c $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cshift0.lo `test -f 'intrinsics/cshift0.c' || echo '$(srcdir)/'`intrinsics/cshift0.c +date_and_time.o: intrinsics/date_and_time.c + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o date_and_time.o `test -f 'intrinsics/date_and_time.c' || echo '$(srcdir)/'`intrinsics/date_and_time.c + +date_and_time.obj: intrinsics/date_and_time.c + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o date_and_time.obj `if test -f 'intrinsics/date_and_time.c'; then $(CYGPATH_W) 'intrinsics/date_and_time.c'; else $(CYGPATH_W) '$(srcdir)/intrinsics/date_and_time.c'; fi` + +date_and_time.lo: intrinsics/date_and_time.c + $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o date_and_time.lo `test -f 'intrinsics/date_and_time.c' || echo '$(srcdir)/'`intrinsics/date_and_time.c + eoshift0.o: intrinsics/eoshift0.c $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o eoshift0.o `test -f 'intrinsics/eoshift0.c' || echo '$(srcdir)/'`intrinsics/eoshift0.c diff --git a/libgfortran/libgfortran.h b/libgfortran/libgfortran.h index a4c27597280952bffa5662355d42689777de62ef..4eba606a666ea932fb4a06bf66158b0d02eb31cf 100644 --- a/libgfortran/libgfortran.h +++ b/libgfortran/libgfortran.h @@ -390,6 +390,12 @@ void internal_unpack_4 (gfc_array_i4 *, const GFC_INTEGER_4 *); #define internal_unpack_8 prefix(internal_unpack_8) void internal_unpack_8 (gfc_array_i8 *, const GFC_INTEGER_8 *); +/* date_and_time.c */ + +#define date_and_time prefix(date_and_time) +void date_and_time (char *, char *, char *, gfc_array_i4 *, + GFC_INTEGER_4, GFC_INTEGER_4, GFC_INTEGER_4); + /* string_intrinsics.c */ #define compare_string prefix(compare_string)