bug79571.phpt 533 B

1234567891011121314151617181920212223242526272829303132
  1. --TEST--
  2. Bug #79571 (FFI: var_dumping unions may segfault)
  3. --EXTENSIONS--
  4. ffi
  5. --SKIPIF--
  6. <?php
  7. if (pack('S', 0xABCD) !== pack('v', 0xABCD)) {
  8. die('skip for little-endian architectures only');
  9. }
  10. ?>
  11. --FILE--
  12. <?php
  13. $ffi = FFI::cdef(<<<EOF
  14. typedef union {
  15. int num;
  16. char *str;
  17. } my_union;
  18. EOF);
  19. $union = $ffi->new('my_union');
  20. $union->num = 42;
  21. var_dump($union);
  22. var_dump($union->num);
  23. ?>
  24. --EXPECTF--
  25. object(FFI\CData:union <anonymous>)#%d (2) {
  26. ["num"]=>
  27. int(42)
  28. ["str"]=>
  29. string(4) "0x2a"
  30. }
  31. int(42)