aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gfortran.dg/iso_c_binding_c_loc_char_1.f03
diff options
context:
space:
mode:
authorBen Cheng <bccheng@google.com>2014-03-25 22:37:19 -0700
committerBen Cheng <bccheng@google.com>2014-03-25 22:37:19 -0700
commit1bc5aee63eb72b341f506ad058502cd0361f0d10 (patch)
treec607e8252f3405424ff15bc2d00aa38dadbb2518 /gcc-4.9/gcc/testsuite/gfortran.dg/iso_c_binding_c_loc_char_1.f03
parent283a0bf58fcf333c58a2a92c3ebbc41fb9eb1fdb (diff)
downloadtoolchain_gcc-1bc5aee63eb72b341f506ad058502cd0361f0d10.tar.gz
toolchain_gcc-1bc5aee63eb72b341f506ad058502cd0361f0d10.tar.bz2
toolchain_gcc-1bc5aee63eb72b341f506ad058502cd0361f0d10.zip
Initial checkin of GCC 4.9.0 from trunk (r208799).
Change-Id: I48a3c08bb98542aa215912a75f03c0890e497dba
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gfortran.dg/iso_c_binding_c_loc_char_1.f03')
-rw-r--r--gcc-4.9/gcc/testsuite/gfortran.dg/iso_c_binding_c_loc_char_1.f0321
1 files changed, 21 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gfortran.dg/iso_c_binding_c_loc_char_1.f03 b/gcc-4.9/gcc/testsuite/gfortran.dg/iso_c_binding_c_loc_char_1.f03
new file mode 100644
index 000000000..14bc4a075
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gfortran.dg/iso_c_binding_c_loc_char_1.f03
@@ -0,0 +1,21 @@
+! { dg-do compile }
+! PR 38536 - don't reject substring of length one
+! Original test case by Scot Breitenfeld
+SUBROUTINE test(buf, buf2, buf3, n)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ CHARACTER(LEN=*), INTENT(INOUT), TARGET :: buf
+ INTEGER, INTENT(in) :: n
+ CHARACTER(LEN=*), INTENT(INOUT), DIMENSION(1:2), TARGET :: buf2
+ CHARACTER(LEN=3), TARGET :: buf3
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1:1)) ! Used to fail
+ ! Error: CHARACTER argument 'buf' to 'c_loc'
+ ! at (1) must have a length of 1
+ f_ptr = C_LOC(buf2(1)(1:1)) ! PASSES
+
+ f_ptr = C_LOC(buf(n:n))
+
+ f_ptr = C_LOC(buf3(3:))
+END SUBROUTINE test