aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/module.c
diff options
context:
space:
mode:
authorTobias Burnus <burnus@net-b.de>2010-04-06 19:58:50 +0200
committerTobias Burnus <burnus@gcc.gnu.org>2010-04-06 19:58:50 +0200
commit385e8144121c9dfc0f8eb1a096db3e68183246bb (patch)
tree97587fcc9510fd4259031a04b6099613e4e70766 /gcc/fortran/module.c
parentd0a4a61c3de7ac131afc0014c6a8970ca6dcdeca (diff)
downloadgcc-385e8144121c9dfc0f8eb1a096db3e68183246bb.zip
gcc-385e8144121c9dfc0f8eb1a096db3e68183246bb.tar.gz
gcc-385e8144121c9dfc0f8eb1a096db3e68183246bb.tar.bz2
re PR fortran/18918 (Eventually support Fortran 2008's coarrays [co-arrays])
2010-04-06 Tobias Burnus <burnus@net-b.de> PR fortran/18918 * iso-fortran-env.def: Add the integer parameters * atomic_int_kind, atomic_logical_kind, iostat_inquire_internal_unit, stat_locked, stat_locked_other_image, stat_stopped_image and stat_unlocked of Fortran 2008. * intrinsic.texi (iso_fortran_env): Ditto. * libgfortran.h (libgfortran_stat_codes): New enum. * module.c (use_iso_fortran_env_module): Honour -std= when * loading constants from the intrinsic module. 2010-04-06 Tobias Burnus <burnus@net-b.de> PR fortran/18918 * gfortran.dg/iso_fortran_env_5.f90: New test. * gfortran.dg/iso_fortran_env_6.f90: New test. From-SVN: r158011
Diffstat (limited to 'gcc/fortran/module.c')
-rw-r--r--gcc/fortran/module.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/gcc/fortran/module.c b/gcc/fortran/module.c
index 0fc1921..666fd84 100644
--- a/gcc/fortran/module.c
+++ b/gcc/fortran/module.c
@@ -5401,6 +5401,11 @@ use_iso_fortran_env_module (void)
gfc_option.flag_default_integer
? "-fdefault-integer-8" : "-fdefault-real-8");
+ if (gfc_notify_std (symbol[i].standard, "The symbol '%s', referrenced "
+ "at %C, is not in the selected standard",
+ symbol[i].name) == FAILURE)
+ continue;
+
create_int_parameter (u->local_name[0] ? u->local_name
: symbol[i].name,
symbol[i].value, mod, INTMOD_ISO_FORTRAN_ENV,
@@ -5411,6 +5416,10 @@ use_iso_fortran_env_module (void)
for (i = 0; symbol[i].name; i++)
{
local_name = NULL;
+
+ if ((gfc_option.allow_std & symbol[i].standard) == 0)
+ break;
+
for (u = gfc_rename_list; u; u = u->next)
{
if (strcmp (symbol[i].name, u->use_name) == 0)