From: burnus Date: Tue, 14 Nov 2006 15:35:36 +0000 (+0000) Subject: fortran/ X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=commitdiff_plain;h=6fc2cbcc082208f704a903246d7241a69bc8d2e6 fortran/ 2006-11-14 Tobias Burnus PR fortran/29657 * symbol.c (check_conflict): Add further conflicts. testsuite/ 2006-11-14 Tobias Burnus PR fortran/29657 * gfortran.dg/conflicts.f90: Add. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118812 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 2ba9e874c96..e3e1351f41f 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2006-11-14 Tobias Burnus + + PR fortran/29657 + * symbol.c (check_conflict): Add further conflicts. + 2006-11-13 Jakub Jelinek PR fortran/29759 diff --git a/gcc/fortran/symbol.c b/gcc/fortran/symbol.c index fce6db46a87..6a5598de5c2 100644 --- a/gcc/fortran/symbol.c +++ b/gcc/fortran/symbol.c @@ -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); } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 9693e4da1aa..3a207cbc8dd 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2006-11-14 Tobias Burnus + + PR fortran/29657 + * gfortran.dg/conflicts.f90: Add. + 2006-11-14 Paolo Bonzini PR rtl-optimization/29798 diff --git a/gcc/testsuite/gfortran.dg/conflicts.f90 b/gcc/testsuite/gfortran.dg/conflicts.f90 new file mode 100644 index 00000000000..b1b59f4ac4c --- /dev/null +++ b/gcc/testsuite/gfortran.dg/conflicts.f90 @@ -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