diff options
author | Tobias Burnus <burnus@net-b.de> | 2010-02-27 18:25:05 +0100 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2010-02-27 18:25:05 +0100 |
commit | cea2d589bd22a51d35f5c138fd847a58f9e15e9a (patch) | |
tree | c74a285a23e3f51acfc893b7d3a1ccf188aa7056 /gcc/fortran/resolve.c | |
parent | 58f1b7061e21da2b4abe14498bf79e8cad5450bf (diff) | |
download | gcc-cea2d589bd22a51d35f5c138fd847a58f9e15e9a.zip gcc-cea2d589bd22a51d35f5c138fd847a58f9e15e9a.tar.gz gcc-cea2d589bd22a51d35f5c138fd847a58f9e15e9a.tar.bz2 |
re PR fortran/43185 ([F2008] Implicit SAVE in MODULEs)
2010-02-27 Tobias Burnus <burnus@net-b.de>
PR fortran/43185
* resolve.c (resolve_fl_variable_derived): Imply SAVE
for module variables for Fortran 2008.
2010-02-27 Tobias Burnus <burnus@net-b.de>
PR fortran/43185
* gfortran.dg/default_initialization_1.f90: Add -std=f2003.
* gfortran.dg/default_initialization_4.f90: New test.
From-SVN: r157109
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r-- | gcc/fortran/resolve.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index bcc8eae..4f9eb01 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -8937,13 +8937,12 @@ resolve_fl_variable_derived (gfc_symbol *sym, int no_init_flag) && sym->ns->proc_name->attr.flavor == FL_MODULE && !sym->ns->save_all && !sym->attr.save && !sym->attr.pointer && !sym->attr.allocatable - && has_default_initializer (sym->ts.u.derived)) - { - gfc_error("Object '%s' at %L must have the SAVE attribute for " - "default initialization of a component", - sym->name, &sym->declared_at); - return FAILURE; - } + && has_default_initializer (sym->ts.u.derived) + && gfc_notify_std (GFC_STD_F2008, "Fortran 2008: Implied SAVE for " + "module variable '%s' at %L, needed due to " + "the default initialization", sym->name, + &sym->declared_at) == FAILURE) + return FAILURE; if (sym->ts.type == BT_CLASS) { |