xref: /PHP-7.4/ext/ffi/tests/044.phpt (revision 039500ad)
1--TEST--
2FFI 044: mode attribute
3--SKIPIF--
4<?php require_once('skipif.inc'); ?>
5--INI--
6ffi.enable=1
7--FILE--
8<?php
9$ffi = FFI::cdef("
10typedef int a __attribute__ ((__mode__ (__QI__)));
11typedef unsigned int ua __attribute__ ((__mode__ (__QI__)));
12typedef int b __attribute__ ((__mode__ (__HI__)));
13typedef unsigned int ub __attribute__ ((__mode__ (__HI__)));
14typedef int c __attribute__ ((__mode__ (__SI__)));
15typedef unsigned int uc __attribute__ ((__mode__ (__SI__)));
16typedef int d __attribute__ ((__mode__ (__DI__)));
17typedef unsigned int ud __attribute__ ((__mode__ (__DI__)));
18typedef float e __attribute__ ((__mode__ (__SF__)));
19typedef float f __attribute__ ((__mode__ (__DF__)));
20");
21var_dump(FFI::sizeof($ffi->new("a")));
22var_dump(FFI::sizeof($ffi->new("ua")));
23var_dump(FFI::sizeof($ffi->new("b")));
24var_dump(FFI::sizeof($ffi->new("ub")));
25var_dump(FFI::sizeof($ffi->new("c")));
26var_dump(FFI::sizeof($ffi->new("uc")));
27var_dump(FFI::sizeof($ffi->new("d")));
28var_dump(FFI::sizeof($ffi->new("ud")));
29var_dump(FFI::sizeof($ffi->new("e")));
30var_dump(FFI::sizeof($ffi->new("f")));
31?>
32--EXPECT--
33int(1)
34int(1)
35int(2)
36int(2)
37int(4)
38int(4)
39int(8)
40int(8)
41int(4)
42int(8)
43