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
This commit is contained in:
parent
995a569727
commit
9c213349ff
@ -1,3 +1,8 @@
|
||||
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);
|
||||
}
|
||||
|
@ -1,3 +1,8 @@
|
||||
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
|
||||
|
51
gcc/testsuite/gfortran.dg/conflicts.f90
Normal file
51
gcc/testsuite/gfortran.dg/conflicts.f90
Normal file
@ -0,0 +1,51 @@
|
||||
! { 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
|
Loading…
Reference in New Issue
Block a user