bug77632b.phpt 653 B

123456789101112131415161718192021222324252627
  1. --TEST--
  2. Bug #77632 (FFI function pointers with variadics)
  3. --EXTENSIONS--
  4. ffi
  5. --SKIPIF--
  6. <?php
  7. require_once('utils.inc');
  8. try {
  9. FFI::cdef("extern void *zend_printf;", ffi_get_php_dll_name());
  10. } catch (Throwable $_) {
  11. die('skip PHP symbols not available');
  12. }
  13. ?>
  14. --INI--
  15. ffi.enable=1
  16. --FILE--
  17. <?php
  18. require_once('utils.inc');
  19. $libc = FFI::cdef("extern size_t (*zend_printf)(const char *format, ...);", ffi_get_php_dll_name());
  20. $args = ["test from zend_printf\n"];
  21. ($libc->zend_printf)(...$args);
  22. $args2 = ["Hello, %s from zend_printf\n", "world"];
  23. ($libc->zend_printf)(...$args2);
  24. ?>
  25. --EXPECT--
  26. test from zend_printf
  27. Hello, world from zend_printf