summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/winapi.f90
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gfortran.dg/winapi.f90')
-rw-r--r--gcc/testsuite/gfortran.dg/winapi.f9023
1 files changed, 23 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/winapi.f90 b/gcc/testsuite/gfortran.dg/winapi.f90
new file mode 100644
index 000000000..0ee3920ff
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/winapi.f90
@@ -0,0 +1,23 @@
+! { dg-do run { target *-*-cygwin* *-*-mingw* } }
+! { dg-options "-lkernel32" }
+! Test case provided by Dennis Wassel.
+
+PROGRAM winapi
+
+ USE, INTRINSIC :: iso_c_binding
+ IMPLICIT NONE
+
+ INTERFACE
+ ! Specifically select the lstrlenA version for ASCII.
+ FUNCTION lstrlen(string) BIND(C, name = "lstrlenA")
+ USE, INTRINSIC :: iso_c_binding
+ IMPLICIT NONE
+ !GCC$ ATTRIBUTES STDCALL :: lstrlen
+ INTEGER (C_INT) :: lstrlen
+ CHARACTER(KIND=C_CHAR), INTENT(in) :: string(*)
+ END FUNCTION lstrlen
+ END INTERFACE
+
+ IF (lstrlen(C_CHAR_"winapi"//C_NULL_CHAR) /= 6) CALL abort()
+
+END PROGRAM winapi