http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56284
--- Comment #7 from Dominique d'Humieres <dominiq at lps dot ens.fr> 2013-02-11 19:06:10 UTC --- > The combined patches of comment 4 and 5 yield the following testsuite > failures: > > FAIL: gfortran.dg/altreturn_2.f90 -O (test for excess errors) > FAIL: gfortran.dg/intrinsic_actual_3.f90 -O (test for excess errors) > FAIL: gfortran.dg/invalid_interface_assignment.f90 -O (test for excess > errors) These tests are complied with -pedantic-errors and after the patch in comment #5, their compilation gives the corresponding warning: Warning: Obsolescent feature: Alternate return argument at (1) The tests pass with the following patch --- /opt/gcc/_clean/gcc/testsuite/gfortran.dg/invalid_interface_assignment.f90 2010-02-10 17:54:15.000000000 +0100 +++ /opt/gcc/work/gcc/testsuite/gfortran.dg/invalid_interface_assignment.f90 2013-02-11 19:57:39.000000000 +0100 @@ -12,8 +12,9 @@ MODULE TT MODULE PROCEDURE set END INTERFACE CONTAINS - PURE SUBROUTINE set(x1,*) ! { dg-error "Alternate return cannot appear" } + PURE SUBROUTINE set(x1,*) ! { dg-warning "Obsolescent feature: Alternate return argument" } TYPE(data_type), INTENT(OUT) :: x1 x1%i=0 END SUBROUTINE set END MODULE +! { dg-error "Alternate return cannot appear" "" { target *-*-* } 15 } --- /opt/gcc/_clean/gcc/testsuite/gfortran.dg/intrinsic_actual_3.f90 2009-11-25 18:17:42.000000000 +0100 +++ /opt/gcc/work/gcc/testsuite/gfortran.dg/intrinsic_actual_3.f90 2013-02-11 19:50:13.000000000 +0100 @@ -6,7 +6,7 @@ ! program ar1 interface random_seed - subroutine x (a, *) + subroutine x (a, *) ! { dg-warning "Obsolescent feature: Alternate return argument" } integer a end subroutine x end interface random_seed --- /opt/gcc/_clean/gcc/testsuite/gfortran.dg/altreturn_2.f90 2009-11-25 18:17:47.000000000 +0100 +++ /opt/gcc/work/gcc/testsuite/gfortran.dg/altreturn_2.f90 2013-02-11 19:48:14.000000000 +0100 @@ -2,7 +2,7 @@ program altreturn_2 call foo() ! { dg-error "Missing alternate return" } contains - subroutine foo(*) + subroutine foo(*) ! { dg-warning "Obsolescent feature: Alternate return argument" } return end subroutine end program I don't know if it is the RIGHT fix, but at least it works (tested with make -k check-gfortran RUNTESTFLAGS="dg.exp=invalid_interface_assignment.f90 --target_board=unix'{-m32,-m64}'" and so on for the other two cases.