summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/value_6.f03
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gfortran.dg/value_6.f03')
-rw-r--r--gcc/testsuite/gfortran.dg/value_6.f0325
1 files changed, 25 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/value_6.f03 b/gcc/testsuite/gfortran.dg/value_6.f03
new file mode 100644
index 000000000..0650d3295
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/value_6.f03
@@ -0,0 +1,25 @@
+! { dg-do run }
+! Verify by-value passing of character arguments w/in Fortran to a bind(c)
+! procedure.
+! PR fortran/32732
+module pr32732
+ use, intrinsic :: iso_c_binding, only: c_char
+ implicit none
+contains
+ subroutine test(a) bind(c)
+ character(kind=c_char), value :: a
+ call test2(a)
+ end subroutine test
+ subroutine test2(a) bind(c)
+ character(kind=c_char), value :: a
+ if(a /= c_char_'a') call abort ()
+ print *, 'a=',a
+ end subroutine test2
+end module pr32732
+
+program main
+ use pr32732
+ implicit none
+ call test('a')
+end program main
+! { dg-final { cleanup-modules "pr32732" } }