diff options
-rw-r--r-- | testsuite/tests/rts/linker/T21556/T21556_lib.c | 5 | ||||
-rw-r--r-- | testsuite/tests/rts/linker/T21556/T21556a.hs | 7 | ||||
-rw-r--r-- | testsuite/tests/rts/linker/T21556/T21556a.stdout | 1 | ||||
-rw-r--r-- | testsuite/tests/rts/linker/T21556/T21556b.hs | 7 | ||||
-rw-r--r-- | testsuite/tests/rts/linker/T21556/T21556b.stdout | 1 | ||||
-rw-r--r-- | testsuite/tests/rts/linker/T21556/T21556b_c.c | 6 | ||||
-rw-r--r-- | testsuite/tests/rts/linker/T21556/all.T | 6 |
7 files changed, 33 insertions, 0 deletions
diff --git a/testsuite/tests/rts/linker/T21556/T21556_lib.c b/testsuite/tests/rts/linker/T21556/T21556_lib.c new file mode 100644 index 0000000000..dbeab24f85 --- /dev/null +++ b/testsuite/tests/rts/linker/T21556/T21556_lib.c @@ -0,0 +1,5 @@ +#include <stdio.h> + +__attribute__((weak)) void hello(int x) { + printf("hello %d\n", x+1); +} diff --git a/testsuite/tests/rts/linker/T21556/T21556a.hs b/testsuite/tests/rts/linker/T21556/T21556a.hs new file mode 100644 index 0000000000..5e66be0c3e --- /dev/null +++ b/testsuite/tests/rts/linker/T21556/T21556a.hs @@ -0,0 +1,7 @@ +{-# LANGUAGE ForeignFunctionInterface #-} + +import Foreign.C.Types + +foreign import ccall unsafe "hello" hello :: CInt -> IO () + +main = hello 42 diff --git a/testsuite/tests/rts/linker/T21556/T21556a.stdout b/testsuite/tests/rts/linker/T21556/T21556a.stdout new file mode 100644 index 0000000000..c91bc968f9 --- /dev/null +++ b/testsuite/tests/rts/linker/T21556/T21556a.stdout @@ -0,0 +1 @@ +hello 43 diff --git a/testsuite/tests/rts/linker/T21556/T21556b.hs b/testsuite/tests/rts/linker/T21556/T21556b.hs new file mode 100644 index 0000000000..5e66be0c3e --- /dev/null +++ b/testsuite/tests/rts/linker/T21556/T21556b.hs @@ -0,0 +1,7 @@ +{-# LANGUAGE ForeignFunctionInterface #-} + +import Foreign.C.Types + +foreign import ccall unsafe "hello" hello :: CInt -> IO () + +main = hello 42 diff --git a/testsuite/tests/rts/linker/T21556/T21556b.stdout b/testsuite/tests/rts/linker/T21556/T21556b.stdout new file mode 100644 index 0000000000..09c51b84cb --- /dev/null +++ b/testsuite/tests/rts/linker/T21556/T21556b.stdout @@ -0,0 +1 @@ +world 42 diff --git a/testsuite/tests/rts/linker/T21556/T21556b_c.c b/testsuite/tests/rts/linker/T21556/T21556b_c.c new file mode 100644 index 0000000000..87c3139f01 --- /dev/null +++ b/testsuite/tests/rts/linker/T21556/T21556b_c.c @@ -0,0 +1,6 @@ +#include <stdio.h> + +void hello(int x) { + printf("world %d\n", x); +} + diff --git a/testsuite/tests/rts/linker/T21556/all.T b/testsuite/tests/rts/linker/T21556/all.T new file mode 100644 index 0000000000..fad0e9758f --- /dev/null +++ b/testsuite/tests/rts/linker/T21556/all.T @@ -0,0 +1,6 @@ +setTestOpts([ + unless(opsys('mingw32'), skip), + extra_files(['T21556_lib.c']) +]) +test('T21556a', normal, multimod_compile_and_run, ['T21556a', 'T21556_lib.c']) +test('T21556b', normal, multimod_compile_and_run, ['T21556b', 'T21556_lib.c T21556b_c.c']) |