aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/char_pointer_assign_5.f90
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gfortran.dg/char_pointer_assign_5.f90')
-rw-r--r--gcc/testsuite/gfortran.dg/char_pointer_assign_5.f9023
1 files changed, 23 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/char_pointer_assign_5.f90 b/gcc/testsuite/gfortran.dg/char_pointer_assign_5.f90
new file mode 100644
index 00000000000..471f6e6b162
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/char_pointer_assign_5.f90
@@ -0,0 +1,23 @@
+! { dg-do run }
+! { dg-options "-fbounds-check" }
+! { dg-shouldfail "Unequal character length" }
+
+! PR fortran/31822
+! Verify that runtime checks for matching character length
+! in pointer assignment work.
+
+! Contributed by Tobias Burnus <burnus@gcc.gnu.org>
+
+program ptr
+ implicit none
+ character(len=10), target :: s1
+ call bar((/ s1, s1 /))
+contains
+ subroutine bar(s)
+ character(len=*),target :: s(2)
+ character(len=17),pointer :: p(:)
+ p => s
+ end subroutine bar
+end program ptr
+
+! { dg-output "Unequal character lengths \\(17/10\\)" }