mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-05 14:21:28 +08:00
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
This commit is contained in:
parent
cba28dad93
commit
19e8402866
@ -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.
|
||||
|
18
gcc/testsuite/gfortran.dg/argument_checking_7.f90
Normal file
18
gcc/testsuite/gfortran.dg/argument_checking_7.f90
Normal file
@ -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
|
29
gcc/testsuite/gfortran.dg/argument_checking_8.f90
Normal file
29
gcc/testsuite/gfortran.dg/argument_checking_8.f90
Normal file
@ -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" } }
|
Loading…
x
Reference in New Issue
Block a user