re PR fortran/21432 (gfortran does not support printing of namelists)

2005-08-14 Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/21432.
	* io.c (match_io): Add code to implement PRINT namelist.


2005-08-14 Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/21432.
	* gfortran.dg/namelist_print_1.f: New test of functionality of
	PRINT namelist.
	* gfortran.dg/namelist_print_2.f: New test to check that PRINT
	namelist generates error with -std=f95.

From-SVN: r103079
This commit is contained in:
Paul Thomas 2005-08-14 16:15:40 +00:00
parent adb7b76436
commit 7af8f00c54
5 changed files with 63 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2005-08-14 Paul Thomas <pault@gcc.gnu.org>
PR fortran/21432.
* io.c (match_io): Add code to implement PRINT namelist.
2005-08-14 Canqun Yang <canqun@nudt.edu.cn>
* trans-stmt.c (gfc_trans_arithmetic_if): Optimized in case of equal

View File

@ -2133,6 +2133,30 @@ match_io (io_kind k)
if (gfc_match_char ('(') == MATCH_NO)
{
/* Treat the non-standard case of PRINT namelist. */
if (k == M_PRINT && (gfc_match_name (name) == MATCH_YES)
&& !gfc_find_symbol (name, NULL, 1, &sym)
&& (sym->attr.flavor == FL_NAMELIST))
{
if (gfc_notify_std (GFC_STD_GNU, "PRINT namelist at "
"%C is an extension") == FAILURE)
{
m = MATCH_ERROR;
goto cleanup;
}
if (gfc_match_eos () == MATCH_NO)
{
gfc_error ("Namelist followed by I/O list at %C");
m = MATCH_ERROR;
goto cleanup;
}
dt->io_unit = default_unit (k);
dt->namelist = sym;
goto get_io_list;
}
if (k == M_WRITE)
goto syntax;

View File

@ -1,3 +1,11 @@
2005-08-14 Paul Thomas <pault@gcc.gnu.org>
PR fortran/21432.
* gfortran.dg/namelist_print_1.f: New test of functionality of
PRINT namelist.
* gfortran.dg/namelist_print_2.f: New test to check that PRINT
namelist generates error with -std=f95.
2005-08-14 Ira Rosen <irar@il.ibm.com>
PR tree-optimization/23119

View File

@ -0,0 +1,13 @@
! Test Non standard PRINT namelist - PR21432
!
! Contributor Paul Thomas <pault@gcc.gnu.org>
!
! { dg-do run }
! { dg-options "-std=gnu" }
real x
namelist /mynml/ x
x = 1
! ( dg-output "^" }
print mynml ! { dg-output "&MYNML(\n|\r\n|\r) X= 1.000000 , /(\n|\r\n|\r)" }
end

View File

@ -0,0 +1,13 @@
! Test Non standard PRINT namelist - PR21432 is
! not accepted by -std=f95
!
! Contributor Paul Thomas <pault@gcc.gnu.org>
!
! { dg-do compile }
! { dg-options "-std=f95" }
!
real x
namelist /mynml/ x
x = 1
print mynml ! { dg-error "PRINT namelist.*extension" "" }
end