Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gfortran.dg/deferred_type_param_2.f90 @ 128:fe568345ddd5
fix CbC-example
author | mir3636 |
---|---|
date | Wed, 11 Apr 2018 19:32:28 +0900 |
parents | 04ced10e8804 |
children | 84e7813d76e9 |
line wrap: on
line source
! { dg-do compile } ! { dg-options "-std=f2008" } ! ! PR fortran/45170 ! ! Character deferred type parameter ! subroutine one(x, y) ! { dg-error "Entity .y. at .1. has a deferred type parameter" } implicit none character(len=:), pointer :: x character(len=:) :: y character(len=:), allocatable, target :: str2 character(len=:), target :: str ! { dg-error "deferred type parameter" } end subroutine one subroutine two() implicit none character(len=:), allocatable, target :: str1(:) character(len=5), save, target :: str2 character(len=:), pointer :: pstr => str2 character(len=:), pointer :: pstr2(:) end subroutine two subroutine three() ! implicit none ! Disabled because of PR 46152 character(len=:), allocatable, target :: str1(:) character(len=5), save, target :: str2 character(len=:), pointer :: pstr character(len=:), pointer :: pstr2(:) pstr => str2 pstr2 => str1 str1 = ["abc"] pstr2 => str1 allocate (character(len=77) :: str1(1)) allocate (pstr, source=str2) allocate (pstr, mold=str2) allocate (pstr) ! { dg-error "requires either a type-spec or SOURCE tag" } allocate (character(len=:) :: str1(1)) ! { dg-error "cannot contain a deferred type parameter" } str1 = [ character(len=2) :: "abc" ] str1 = [ character(len=:) :: "abc" ] ! { dg-error "cannot contain a deferred type parameter" } end subroutine three subroutine four() implicit none character(len=:), allocatable, target :: str character(len=:), pointer :: pstr pstr => str str = "abc" if(len(pstr) /= len(str) .or. len(str)/= 3) call abort() str = "abcd" if(len(pstr) /= len(str) .or. len(str)/= 4) call abort() end subroutine four subroutine five() character(len=4) :: str*(:) allocatable :: str end subroutine five