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>
|
2006-11-13 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
PR fortran/29759
|
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, save);
|
||||||
conf (dummy, threadprivate);
|
conf (dummy, threadprivate);
|
||||||
conf (pointer, target);
|
conf (pointer, target);
|
||||||
|
@ -427,6 +429,7 @@ check_conflict (symbol_attribute * attr, const char * name, locus * where)
|
||||||
case FL_BLOCK_DATA:
|
case FL_BLOCK_DATA:
|
||||||
case FL_MODULE:
|
case FL_MODULE:
|
||||||
case FL_LABEL:
|
case FL_LABEL:
|
||||||
|
conf2 (dimension);
|
||||||
conf2 (dummy);
|
conf2 (dummy);
|
||||||
conf2 (save);
|
conf2 (save);
|
||||||
conf2 (pointer);
|
conf2 (pointer);
|
||||||
|
@ -448,15 +451,16 @@ check_conflict (symbol_attribute * attr, const char * name, locus * where)
|
||||||
|
|
||||||
case FL_PROCEDURE:
|
case FL_PROCEDURE:
|
||||||
conf2 (intent);
|
conf2 (intent);
|
||||||
|
conf2(save);
|
||||||
|
|
||||||
if (attr->subroutine)
|
if (attr->subroutine)
|
||||||
{
|
{
|
||||||
conf2(save);
|
|
||||||
conf2(pointer);
|
conf2(pointer);
|
||||||
conf2(target);
|
conf2(target);
|
||||||
conf2(allocatable);
|
conf2(allocatable);
|
||||||
conf2(result);
|
conf2(result);
|
||||||
conf2(in_namelist);
|
conf2(in_namelist);
|
||||||
|
conf2(dimension);
|
||||||
conf2(function);
|
conf2(function);
|
||||||
conf2(threadprivate);
|
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>
|
2006-11-14 Paolo Bonzini <bonzini@gnu.org>
|
||||||
|
|
||||||
PR rtl-optimization/29798
|
PR rtl-optimization/29798
|
||||||
|
|
|
@ -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