diff options
author | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2007-10-27 18:25:43 +0000 |
---|---|---|
committer | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2007-10-27 18:25:43 +0000 |
commit | 19e8402866770ec2f4b126be7254e95e82720f6f (patch) | |
tree | c66f6749233e2bc21a438b5718a27001571ed76a | |
parent | cba28dad932e26ec7bbda71550c8c28fcd67f199 (diff) | |
download | gcc-19e8402866770ec2f4b126be7254e95e82720f6f.zip gcc-19e8402866770ec2f4b126be7254e95e82720f6f.tar.gz gcc-19e8402866770ec2f4b126be7254e95e82720f6f.tar.bz2 |
re PR fortran/31306 (ICE with implicit character variables)
2007-10-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/31306
* gfortran.dg/argument_check_7.f90: New test.
* gfortran.dg/argument_check_8.f90: New test.
From-SVN: r129686
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/argument_checking_7.f90 | 18 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/argument_checking_8.f90 | 29 |
3 files changed, 53 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 6f787ba..d47b108 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2007-10-27 Jerry DeLisle <jvdelisle@gcc.gnu.org> + + PR fortran/31306 + * gfortran.dg/argument_check_7.f90: New test. + * gfortran.dg/argument_check_8.f90: New test. + 2007-10-27 Uros Bizjak <ubizjak@gmail.com> * g++.dg/other/i386-2.C: Include bmmintrin.h. Add -msse5 to dg-options. diff --git a/gcc/testsuite/gfortran.dg/argument_checking_7.f90 b/gcc/testsuite/gfortran.dg/argument_checking_7.f90 new file mode 100644 index 0000000..17f043a --- /dev/null +++ b/gcc/testsuite/gfortran.dg/argument_checking_7.f90 @@ -0,0 +1,18 @@ +! { dg-do compile } +! PR31306 ICE with implicit character variables +! Test case from PR and prepared by Jerry DeLisle <jvdelisle@gcc.gnu.org> +module cyclic + implicit none + contains + function ouch(x,y) ! { dg-error "has no IMPLICIT type" } + implicit character(len(ouch)) (x) ! { dg-error "Conflict in attributes" } + implicit character(len(x)+1) (y) + implicit character(len(y)-1) (o) + intent(in) x,y + character(len(y)-1) ouch + integer i + do i = 1, len(ouch) + ouch(i:i) = achar(ieor(iachar(x(i:i)),iachar(y(i:i)))) ! { dg-error " PROCEDURE attribute conflicts" } + end do + end function ouch +end module cyclic diff --git a/gcc/testsuite/gfortran.dg/argument_checking_8.f90 b/gcc/testsuite/gfortran.dg/argument_checking_8.f90 new file mode 100644 index 0000000..05c94f6 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/argument_checking_8.f90 @@ -0,0 +1,29 @@ +! { dg-do run } +! PR31306 ICE with implicit character variables +! Test case from PR and prepared by Jerry DeLisle <jvdelisle@gcc.gnu.org> +module cyclic + implicit none + contains + character(10) function ouch(x,y) + implicit character(len(ouch)) (x) + implicit character(len(x)+1) (y) + intent(in) x,y + integer i + do i = 1, len(ouch) + ouch(i:i) = achar(ieor(iachar(x(i:i)),iachar(y(i:i)))) + end do + end function ouch +end module cyclic + +program test + use cyclic + implicit none + character(10) astr + integer i + write(astr,'(a)') ouch('YOW! ','jerry ') + if (astr(1:5) /= "3*%SY") call abort + do i=6,10 + if (astr(i:i) /= achar(0)) call abort + end do +end program test +! { dg-final { cleanup-modules "cyclic" } } |