Bug #73954 [Com]: NAN check fails on Alpine Linux with musl
| From: | alex dot masterow at gmail dot com | Date: | Tue, 17 Jan 2017 20:05:31 +0000 |
| Subject: | Bug #73954 [Com]: NAN check fails on Alpine Linux with musl | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-206715@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=73954&edit=1
ID: 73954
Comment by: alex dot masterow at gmail dot com
Reported by: zaq178miami at gmail dot com
Summary: NAN check fails on Alpine Linux with musl
Status: Feedback
Type: Bug
Package: *General Issues
Operating System: Alpine Linux
PHP Version: Irrelevant
Assigned To: cmb
Block user comment: N
Private report: N
New Comment:
I also know about this problem.
> What do you get with the following script with musl:
> var_dump(chr(NAN));
string(1) ""
Unicode: U+0000
HTML: �
Previous Comments:
------------------------------------------------------------------------
[2017-01-17 17:49:36] cmb@php.net
This has nothing to do with ZPP, because it's a userland function.
What do you get with the following script with musl:
<?php
var_dump(chr(NAN));
------------------------------------------------------------------------
[2017-01-17 08:53:33] zaq178miami at gmail dot com
Description:
------------
It seems to be that is_nan check fails or sth like that as when passing NAN to as an int parameter
it silently casted to int(0). While int(0) is valid result for explicit (int)NAN cast, according to
Andrea (https://wiki.php.net/rfc/zpp_fail_on_overflow).
As already discussed on SO (http://chat.stackoverflow.com/transcript/message/35136128#35136128) it
might be just a musl bug, but maybe we should check what NAN do we have and maybe alter config
scripts and/or php_get_nan() accordingly?
Here is runnable snippet: https://3v4l.org/m7hpq
Test script:
---------------
<?php
function test(int $test) {
var_dump($test);
}
test(NAN);
Expected result:
----------------
Fatal error: Uncaught TypeError: Argument 1 passed to test() must be of the type integer, float
given, called in /in/m7hpq on line 6 and defined in /in/m7hpq:2 Stack trace: #0 /in/m7hpq(6):
test(NAN) #1 {main} thrown in /in/m7hpq on line 2
Actual result:
--------------
int(0)
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=73954&edit=1