Commit 9c213349 by Tobias Burnus Committed by Tobias Burnus

re PR fortran/29657 (Don't allow SAVE for functions)

fortran/
2006-11-14  Tobias Burnus  <burnus@net-b.de>

	PR fortran/29657
	* symbol.c (check_conflict): Add further conflicts.

testsuite/
2006-11-14  Tobias Burnus  <burnus@net-b.de>

	PR fortran/29657
	* gfortran.dg/conflicts.f90: Add.

From-SVN: r118812
parent 995a5697
2006-11-14 Tobias Burnus <burnus@net-b.de>
PR fortran/29657
* symbol.c (check_conflict): Add further conflicts.
2006-11-13 Jakub Jelinek <jakub@redhat.com>
PR fortran/29759
......
......@@ -318,6 +318,8 @@ check_conflict (symbol_attribute * attr, const char * name, locus * where)
}
}
conf (dummy, entry);
conf (dummy, intrinsic);
conf (dummy, save);
conf (dummy, threadprivate);
conf (pointer, target);
......@@ -427,6 +429,7 @@ check_conflict (symbol_attribute * attr, const char * name, locus * where)
case FL_BLOCK_DATA:
case FL_MODULE:
case FL_LABEL:
conf2 (dimension);
conf2 (dummy);
conf2 (save);
conf2 (pointer);
......@@ -448,15 +451,16 @@ check_conflict (symbol_attribute * attr, const char * name, locus * where)
case FL_PROCEDURE:
conf2 (intent);
conf2(save);
if (attr->subroutine)
{
conf2(save);
conf2(pointer);
conf2(target);
conf2(allocatable);
conf2(result);
conf2(in_namelist);
conf2(dimension);
conf2(function);
conf2(threadprivate);
}
......
2006-11-14 Tobias Burnus <burnus@net-b.de>
PR fortran/29657
* gfortran.dg/conflicts.f90: Add.
2006-11-14 Paolo Bonzini <bonzini@gnu.org>
PR rtl-optimization/29798
! { dg-do compile }
! Check for conflicts
! PR fortran/29657
function f1() ! { dg-error "has no IMPLICIT type" }
implicit none
real, save :: f1 ! { dg-error "PROCEDURE attribute conflicts with SAVE attribute" }
f1 = 1.0
end function f1
function f2()
implicit none
real :: f2
save f2 ! { dg-error "PROCEDURE attribute conflicts with SAVE attribute" }
f2 = 1.0
end function f2
subroutine f3()
implicit none
dimension f3(3) ! { dg-error "PROCEDURE attribute conflicts with DIMENSION attribute" }
end subroutine f3
subroutine f4(b)
implicit none
real :: b
entry b ! { dg-error "DUMMY attribute conflicts with ENTRY attribute" }
end subroutine f4
function f5(a)
implicit none
real :: a,f5
entry a ! { dg-error "DUMMY attribute conflicts with ENTRY attribute" }
f5 = 3.4
end function f5
subroutine f6(cos)
implicit none
real :: cos
intrinsic cos ! { dg-error "DUMMY attribute conflicts with INTRINSIC attribute" }
end subroutine f6
subroutine f7(sin)
implicit none
real :: sin
external sin
end subroutine f7
program test
implicit none
dimension test(3) ! { dg-error "PROGRAM attribute conflicts with DIMENSION attribute" }
end program test
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment