The following is non-standard and the compiler should probably generate a warning/error with '-pedantic -std=f95' INTEGER, SAVE :: X COMMON /COM/ X END
Confirmed. Error message from Intel: "A COMMON block data object may not have the SAVE attribute."
Subject: Bug 20847 CVSROOT: /cvs/gcc Module name: gcc Changes by: pault@gcc.gnu.org 2005-10-12 20:05:04 Modified files: gcc/fortran : symbol.c ChangeLog gcc/testsuite : ChangeLog Added files: gcc/testsuite/gfortran.dg: save_common.f90 save_result.f90 Log message: 2005-10-12 Paul Thomas <pault@gcc.gnu.org> PR fortran/20847 PR fortran/20856 * symbol.c (check_conflict): Prevent common variables and function results from having the SAVE attribute,as required by the standard. 2005-10-12 Paul Thomas <pault@gcc.gnu.org> PR fortran/20847 gfortran.dg/save_common.f90: New test. PR fortran/20856 gfortran.dg/save_result.f90: New test. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/symbol.c.diff?cvsroot=gcc&r1=1.36&r2=1.37 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/ChangeLog.diff?cvsroot=gcc&r1=1.581&r2=1.582 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/save_common.f90.diff?cvsroot=gcc&r1=NONE&r2=1.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/save_result.f90.diff?cvsroot=gcc&r1=NONE&r2=1.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.6179&r2=1.6180
Subject: Bug 20847 CVSROOT: /cvs/gcc Module name: gcc Branch: gcc-4_0-branch Changes by: pault@gcc.gnu.org 2005-10-14 04:53:30 Modified files: gcc/fortran : symbol.c trans-types.c decl.c ChangeLog gcc/testsuite : ChangeLog Added files: gcc/testsuite/gfortran.dg: automatic_char_len_1.f90 save_common.f90 save_result.f90 derived_pointer_recursion.f90 Log message: 2005-10-14 Paul Thomas <pault@gcc.gnu.org> PR fortran/20847 PR fortran/20856 * symbol.c (check_conflict): Prevent common variables and function results from having the SAVE attribute,as required by the standard. PR fortran/24092 * trans-types.c (gfc_get_derived_type): Insert code to obtain backend declaration for derived types, building if necessary. Return the derived type if the fields have been built by this process. Otherwise, continue as before but using the already obtained backend_decls for the derived type components. Change the gcc_assert to act on the field. PR fortran/18082 * decl.c (variable_decl): Make a new copy of the character length for each variable, when the expression is not a constant. 2005-10-14 Paul Thomas <pault@gcc.gnu.org> PR fortran/18082 * gfortran.dg/automatic_char_len_1.f90: New test. PR fortran/20847 * gfortran.dg/save_common.f90: New test. PR fortran/20856 * gfortran.dg/save_result.f90: New test. PR fortran/24092 * gfortran.dg/derived_pointer_recursion.f90: New test. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/symbol.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.26.2.5&r2=1.26.2.6 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/trans-types.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.37.10.7&r2=1.37.10.8 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/decl.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.31.2.4&r2=1.31.2.5 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.335.2.128&r2=1.335.2.129 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/automatic_char_len_1.f90.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=NONE&r2=1.1.4.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/save_common.f90.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=NONE&r2=1.2.4.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/save_result.f90.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=NONE&r2=1.2.4.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/derived_pointer_recursion.f90.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=NONE&r2=1.1.4.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.5084.2.453&r2=1.5084.2.454
Fixed in 4.0.3.
Fixed.