@@ -7491,10 +7491,10 @@ void zend_ffi_expr_cast(zend_ffi_val *val, zend_ffi_dcl *dcl) /* {{{ */
7491
7491
case ZEND_FFI_TYPE_FLOAT :
7492
7492
if (val -> kind == ZEND_FFI_VAL_UINT32 || val -> kind == ZEND_FFI_VAL_UINT64 ) {
7493
7493
val -> kind = ZEND_FFI_VAL_FLOAT ;
7494
- val -> d = val -> u64 ;
7494
+ val -> d = ( zend_ffi_double ) val -> u64 ;
7495
7495
} else if (val -> kind == ZEND_FFI_VAL_INT32 || val -> kind == ZEND_FFI_VAL_INT64 ) {
7496
7496
val -> kind = ZEND_FFI_VAL_FLOAT ;
7497
- val -> d = val -> i64 ;
7497
+ val -> d = ( zend_ffi_double ) val -> i64 ;
7498
7498
} else if (val -> kind == ZEND_FFI_VAL_FLOAT || val -> kind == ZEND_FFI_VAL_DOUBLE || val -> kind == ZEND_FFI_VAL_LONG_DOUBLE ) {
7499
7499
val -> kind = ZEND_FFI_VAL_FLOAT ;
7500
7500
} else if (val -> kind == ZEND_FFI_VAL_CHAR ) {
@@ -7507,10 +7507,10 @@ void zend_ffi_expr_cast(zend_ffi_val *val, zend_ffi_dcl *dcl) /* {{{ */
7507
7507
case ZEND_FFI_TYPE_DOUBLE :
7508
7508
if (val -> kind == ZEND_FFI_VAL_UINT32 || val -> kind == ZEND_FFI_VAL_UINT64 ) {
7509
7509
val -> kind = ZEND_FFI_VAL_DOUBLE ;
7510
- val -> d = val -> u64 ;
7510
+ val -> d = ( zend_ffi_double ) val -> u64 ;
7511
7511
} else if (val -> kind == ZEND_FFI_VAL_INT32 || val -> kind == ZEND_FFI_VAL_INT64 ) {
7512
7512
val -> kind = ZEND_FFI_VAL_DOUBLE ;
7513
- val -> d = val -> i64 ;
7513
+ val -> d = ( zend_ffi_double ) val -> i64 ;
7514
7514
} else if (val -> kind == ZEND_FFI_VAL_FLOAT || val -> kind == ZEND_FFI_VAL_DOUBLE || val -> kind == ZEND_FFI_VAL_LONG_DOUBLE ) {
7515
7515
val -> kind = ZEND_FFI_VAL_DOUBLE ;
7516
7516
} else if (val -> kind == ZEND_FFI_VAL_CHAR ) {
@@ -7546,7 +7546,7 @@ void zend_ffi_expr_cast(zend_ffi_val *val, zend_ffi_dcl *dcl) /* {{{ */
7546
7546
val -> kind = ZEND_FFI_VAL_UINT32 ;
7547
7547
} else if (val -> kind == ZEND_FFI_VAL_FLOAT || val -> kind == ZEND_FFI_VAL_DOUBLE || val -> kind == ZEND_FFI_VAL_LONG_DOUBLE ) {
7548
7548
val -> kind = ZEND_FFI_VAL_UINT32 ;
7549
- val -> u64 = val -> d ;
7549
+ val -> u64 = ( uint64_t ) val -> d ;
7550
7550
} else if (val -> kind == ZEND_FFI_VAL_CHAR ) {
7551
7551
val -> kind = ZEND_FFI_VAL_UINT32 ;
7552
7552
val -> u64 = val -> ch ;
@@ -7561,7 +7561,7 @@ void zend_ffi_expr_cast(zend_ffi_val *val, zend_ffi_dcl *dcl) /* {{{ */
7561
7561
val -> kind = ZEND_FFI_VAL_INT32 ;
7562
7562
} else if (val -> kind == ZEND_FFI_VAL_FLOAT || val -> kind == ZEND_FFI_VAL_DOUBLE || val -> kind == ZEND_FFI_VAL_LONG_DOUBLE ) {
7563
7563
val -> kind = ZEND_FFI_VAL_INT32 ;
7564
- val -> i64 = val -> d ;
7564
+ val -> i64 = ( uint64_t ) val -> d ;
7565
7565
} else if (val -> kind == ZEND_FFI_VAL_CHAR ) {
7566
7566
val -> kind = ZEND_FFI_VAL_INT32 ;
7567
7567
val -> i64 = val -> ch ;
@@ -7574,7 +7574,7 @@ void zend_ffi_expr_cast(zend_ffi_val *val, zend_ffi_dcl *dcl) /* {{{ */
7574
7574
val -> kind = ZEND_FFI_VAL_UINT64 ;
7575
7575
} else if (val -> kind == ZEND_FFI_VAL_FLOAT || val -> kind == ZEND_FFI_VAL_DOUBLE || val -> kind == ZEND_FFI_VAL_LONG_DOUBLE ) {
7576
7576
val -> kind = ZEND_FFI_VAL_UINT64 ;
7577
- val -> u64 = val -> d ;
7577
+ val -> u64 = ( uint64_t ) val -> d ;
7578
7578
} else if (val -> kind == ZEND_FFI_VAL_CHAR ) {
7579
7579
val -> kind = ZEND_FFI_VAL_UINT64 ;
7580
7580
val -> u64 = val -> ch ;
@@ -7591,7 +7591,7 @@ void zend_ffi_expr_cast(zend_ffi_val *val, zend_ffi_dcl *dcl) /* {{{ */
7591
7591
val -> ch = val -> i64 ;
7592
7592
} else if (val -> kind == ZEND_FFI_VAL_FLOAT || val -> kind == ZEND_FFI_VAL_DOUBLE || val -> kind == ZEND_FFI_VAL_LONG_DOUBLE ) {
7593
7593
val -> kind = ZEND_FFI_VAL_CHAR ;
7594
- val -> ch = val -> d ;
7594
+ val -> ch = ( char ) val -> d ;
7595
7595
} else if (val -> kind == ZEND_FFI_VAL_CHAR ) {
7596
7596
} else {
7597
7597
val -> kind = ZEND_FFI_VAL_ERROR ;
@@ -7602,7 +7602,7 @@ void zend_ffi_expr_cast(zend_ffi_val *val, zend_ffi_dcl *dcl) /* {{{ */
7602
7602
val -> kind = ZEND_FFI_VAL_UINT32 ;
7603
7603
} else if (val -> kind == ZEND_FFI_VAL_FLOAT || val -> kind == ZEND_FFI_VAL_DOUBLE || val -> kind == ZEND_FFI_VAL_LONG_DOUBLE ) {
7604
7604
val -> kind = ZEND_FFI_VAL_UINT32 ;
7605
- val -> u64 = val -> d ;
7605
+ val -> u64 = ( uint64_t ) val -> d ;
7606
7606
} else if (val -> kind == ZEND_FFI_VAL_CHAR ) {
7607
7607
val -> kind = ZEND_FFI_VAL_UINT32 ;
7608
7608
val -> u64 = val -> ch ;
0 commit comments