2018-06-01 Steven G. Kargl <kargl@gcc.gnu.org>
commit0ecc062b744498501b9112952faa57671c3e6993
authorkargl <kargl@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 1 Jun 2018 17:05:02 +0000 (1 17:05 +0000)
committerkargl <kargl@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 1 Jun 2018 17:05:02 +0000 (1 17:05 +0000)
tree0bf61ebd5153e8a07d2e13d7f8dc20fc8dfbcfea
parenta74b9919b267af2ead6c04ca6b0bd63dc320a698
2018-06-01  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/63570
* check.c (gfc_check_random_init): New function. Check arguments of
RANDOM_INIT.
* gfortran.h (GFC_ISYM_RANDOM_INIT): New enum token.
* intrinsic.c (add_subroutines): Add RANDOM_INIT to list of
subroutines.
(gfc_check_intrinsic_standard): Introduce Fortran 2018 check.
* intrinsic.h: Add prototypes for gfc_check_random_init and
gfc_resolve_random_init
* intrinsic.texi: Document new intrinsic subprogram.
* iresolve.c (gfc_resolve_random_init): Resolve routine name.
* trans-decl.c: Declare gfor_fndecl_random_init
* trans-intrinsic.c (conv_intrinsic_random_init): New function.
Translate call to RANDOM_INIT.
(gfc_conv_intrinsic_subroutine): Call it.
  * trans.h: Declare gfor_fndecl_random_init

2018-06-01  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/63570
* gfortran.dg/random_init_1.f90: New test.
* gfortran.dg/random_init_2.f90: New test.
* gfortran.dg/random_init_3.f90: New test.
* gfortran.dg/random_init_4.f90: New test.
* gfortran.dg/random_init_5.f90: New test.
* gfortran.dg/random_init_6.f90: New test.

2018-06-01  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/63570
* libgfortran/Makefile.am: Add random_init.f90 to build.
* libgfortran/Makefile.in: Regenerated.
* libgfortran/gfortran.map: Expose symbol for _gfortran_random_init.
* libgfortran/intrinsics/random_init.f90: Implementation.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@261075 138bc75d-0d04-0410-961f-82ee72b054a4
22 files changed:
gcc/fortran/ChangeLog
gcc/fortran/check.c
gcc/fortran/gfortran.h
gcc/fortran/intrinsic.c
gcc/fortran/intrinsic.h
gcc/fortran/intrinsic.texi
gcc/fortran/iresolve.c
gcc/fortran/trans-decl.c
gcc/fortran/trans-intrinsic.c
gcc/fortran/trans.h
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/random_init_1.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/random_init_2.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/random_init_3.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/random_init_4.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/random_init_5.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/random_init_6.f90 [new file with mode: 0644]
libgfortran/ChangeLog
libgfortran/Makefile.am
libgfortran/Makefile.in
libgfortran/gfortran.map
libgfortran/intrinsics/random_init.f90 [new file with mode: 0644]