]> granicus.if.org Git - php/commitdiff
Fixed test on platforms that don't support fastcall calling convention
authorDmitry Stogov <dmitry@zend.com>
Mon, 13 May 2019 21:21:00 +0000 (00:21 +0300)
committerDmitry Stogov <dmitry@zend.com>
Mon, 13 May 2019 21:21:00 +0000 (00:21 +0300)
ext/ffi/tests/100.phpt

index 7a3be47ec34a0a1e2fabebf6107c5e8cf8dc2823..63fae8c21555fc8ac0a1345d99b121a27912bd8e 100644 (file)
@@ -13,14 +13,21 @@ try {
 ffi.enable=1
 --FILE--
 <?php
+// Check if target supports "fastcall" calling convention
+try {
+       FFI::cdef("extern size_t __attribute__((fastcall)) (*zend_printf)(const char *format);");
+       $fastcall = "__attribute__((fastcall)) ";
+} catch (Throwable $e) {
+       $fastcall = "";
+}
 $zend = FFI::cdef("
        const char *get_zend_version(void);
        //char *get_zend_version(void);
        extern size_t (*zend_printf)(const char *format, ...);
 
-       unsigned long __attribute__((fastcall)) zend_hash_func(const char *str, size_t len);
+       unsigned long $fastcall zend_hash_func(const char *str, size_t len);
 
-       void __attribute__((fastcall)) zend_str_tolower(char *str, size_t length);
+       void $fastcall zend_str_tolower(char *str, size_t length);
 
 ");
 var_dump(trim(explode("\n",$zend->get_zend_version())[0]));