diff options
Diffstat (limited to 'docs/users_guide/exts/ffi.rst')
-rw-r--r-- | docs/users_guide/exts/ffi.rst | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/docs/users_guide/exts/ffi.rst b/docs/users_guide/exts/ffi.rst index 1d40017293..e4a91944ef 100644 --- a/docs/users_guide/exts/ffi.rst +++ b/docs/users_guide/exts/ffi.rst @@ -83,6 +83,21 @@ For more details on the implementation see the Paper: Last known to be accessible `here <https://www.microsoft.com/en-us/research/wp-content/uploads/2004/09/conc-ffi.pdf>`_. +Varargs not supported by ``ccall`` calling convention +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Note that functions requiring varargs arguments are unsupported by the ``ccall`` +calling convention. Foreign imports needing to call such functions should rather +use the ``capi`` convention, giving an explicit signature for the needed +call-pattern. For instance, one could write: :: + + foreign import "capi" "printf" + my_printf :: Ptr CChar -> CInt -> IO () + + printInt :: CInt -> IO () + printInt n = my_printf "printed number %d" n + + .. _ffi-ghcexts: GHC extensions to the FFI Chapter |