diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/allocate_deferred_char_scalar_2.f03')
-rw-r--r-- | gcc/testsuite/gfortran.dg/allocate_deferred_char_scalar_2.f03 | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/allocate_deferred_char_scalar_2.f03 b/gcc/testsuite/gfortran.dg/allocate_deferred_char_scalar_2.f03 new file mode 100644 index 000000000..1f0f43301 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/allocate_deferred_char_scalar_2.f03 @@ -0,0 +1,21 @@ +! { dg-do run } +! Test the fix for PR47519, in which the character length was not +! calculated for the SOURCE expressions below and an ICE resulted. +! +! Contributed by Tobias Burnus <burnus@gcc.gnu.org> +! +program note7_35 + implicit none + character(:), allocatable :: name + character(:), allocatable :: src + integer n + n = 10 + allocate(name, SOURCE=repeat('x',n)) + if (name .ne. 'xxxxxxxxxx') call abort + if (len (name) .ne. 10 ) call abort + deallocate(name) + src = 'xyxy' + allocate(name, SOURCE=repeat(src,n)) + if (name(37:40) .ne. 'xyxy') call abort + if (len (name) .ne. 40 ) call abort +end program note7_35 |