summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Zend/zend_builtin_functions.c6
-rw-r--r--ext/date/php_date.c7
-rw-r--r--ext/date/tests/date_default_timezone_get_error.phpt6
-rw-r--r--ext/date/tests/time_error.phpt6
-rw-r--r--ext/gd/gd.c2
-rw-r--r--ext/gd/tests/gd_info_error.phpt6
-rw-r--r--ext/opcache/Optimizer/zend_func_info.c143
-rw-r--r--ext/standard/lcg.c3
-rw-r--r--ext/standard/tests/math/lcg_value_basic.phpt24
9 files changed, 116 insertions, 87 deletions
diff --git a/Zend/zend_builtin_functions.c b/Zend/zend_builtin_functions.c
index e09310239f..d0f0b7cf69 100644
--- a/Zend/zend_builtin_functions.c
+++ b/Zend/zend_builtin_functions.c
@@ -193,6 +193,10 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_set_exception_handler, 0, 0, 1)
ZEND_ARG_INFO(0, exception_handler)
ZEND_END_ARG_INFO()
+ZEND_BEGIN_ARG_INFO_EX(arginfo_get_defined_functions, 0, 0, 1)
+ ZEND_ARG_INFO(0, exclude_disabled)
+ZEND_END_ARG_INFO()
+
ZEND_BEGIN_ARG_INFO_EX(arginfo_create_function, 0, 0, 2)
ZEND_ARG_INFO(0, args)
ZEND_ARG_INFO(0, code)
@@ -270,7 +274,7 @@ static const zend_function_entry builtin_functions[] = { /* {{{ */
ZEND_FE(get_declared_classes, arginfo_zend__void)
ZEND_FE(get_declared_traits, arginfo_zend__void)
ZEND_FE(get_declared_interfaces, arginfo_zend__void)
- ZEND_FE(get_defined_functions, arginfo_zend__void)
+ ZEND_FE(get_defined_functions, arginfo_get_defined_functions)
ZEND_FE(get_defined_vars, arginfo_zend__void)
ZEND_DEP_FE(create_function, arginfo_create_function)
ZEND_FE(get_resource_type, arginfo_get_resource_type)
diff --git a/ext/date/php_date.c b/ext/date/php_date.c
index 8b1e84f91e..08f0a4f3b2 100644
--- a/ext/date/php_date.c
+++ b/ext/date/php_date.c
@@ -1757,6 +1757,10 @@ PHP_FUNCTION(gmstrftime)
Return current UNIX timestamp */
PHP_FUNCTION(time)
{
+ if (zend_parse_parameters_none() == FAILURE) {
+ return;
+ }
+
RETURN_LONG((zend_long)time(NULL));
}
/* }}} */
@@ -4835,6 +4839,9 @@ PHP_FUNCTION(date_default_timezone_set)
PHP_FUNCTION(date_default_timezone_get)
{
timelib_tzinfo *default_tz;
+ if (zend_parse_parameters_none() == FAILURE) {
+ return;
+ }
default_tz = get_timezone_info();
RETVAL_STRING(default_tz->name);
diff --git a/ext/date/tests/date_default_timezone_get_error.phpt b/ext/date/tests/date_default_timezone_get_error.phpt
index 1d96d18cd7..e45722a06c 100644
--- a/ext/date/tests/date_default_timezone_get_error.phpt
+++ b/ext/date/tests/date_default_timezone_get_error.phpt
@@ -22,6 +22,8 @@ var_dump( date_default_timezone_get($extra_arg));
*** Testing date_default_timezone_get() : error conditions ***
-- Testing date_create() function with more than expected no. of arguments --
-string(3) "UTC"
-===Done=== \ No newline at end of file
+Warning: date_default_timezone_get() expects exactly 0 parameters, 1 given in %sdate_default_timezone_get_error.php on line %d
+NULL
+
+===Done===
diff --git a/ext/date/tests/time_error.phpt b/ext/date/tests/time_error.phpt
index 853c1babe7..b1d136feb2 100644
--- a/ext/date/tests/time_error.phpt
+++ b/ext/date/tests/time_error.phpt
@@ -15,5 +15,7 @@ var_dump (time($extra_arg));
===DONE===
--EXPECTF--
Too many arguments
-int(%d)
-===DONE=== \ No newline at end of file
+
+Warning: time() expects exactly 0 parameters, 1 given in %stime_error.php on line %d
+NULL
+===DONE===
diff --git a/ext/gd/gd.c b/ext/gd/gd.c
index f35684b02d..a530f82424 100644
--- a/ext/gd/gd.c
+++ b/ext/gd/gd.c
@@ -1323,7 +1323,7 @@ PHP_MINFO_FUNCTION(gd)
PHP_FUNCTION(gd_info)
{
if (zend_parse_parameters_none() == FAILURE) {
- RETURN_FALSE;
+ return;
}
array_init(return_value);
diff --git a/ext/gd/tests/gd_info_error.phpt b/ext/gd/tests/gd_info_error.phpt
index 15a26e4a49..edc18fac0f 100644
--- a/ext/gd/tests/gd_info_error.phpt
+++ b/ext/gd/tests/gd_info_error.phpt
@@ -31,8 +31,8 @@ var_dump(gd_info($extra_arg_string, $extra_arg_number));
-- Testing gd_info() function with more than expected number of arguments --
Warning: gd_info() expects exactly 0 parameters, 1 given in %s on line %d
-bool(false)
+NULL
Warning: gd_info() expects exactly 0 parameters, 2 given in %s on line %d
-bool(false)
-===DONE=== \ No newline at end of file
+NULL
+===DONE===
diff --git a/ext/opcache/Optimizer/zend_func_info.c b/ext/opcache/Optimizer/zend_func_info.c
index fdaabde07c..de80711065 100644
--- a/ext/opcache/Optimizer/zend_func_info.c
+++ b/ext/opcache/Optimizer/zend_func_info.c
@@ -249,14 +249,15 @@ static const func_info_t func_infos[] = {
F0("trait_exists", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE),
FC("function_exists", zend_b_s_info), // TODO: inline
F0("class_alias", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE),
- F1("get_included_files", MAY_BE_NULL | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING),
+ I1("get_included_files", MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING),
F0("trigger_error", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE),
F0("user_error", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE),
FN("set_error_handler", MAY_BE_NULL | MAY_BE_STRING | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING | MAY_BE_ARRAY_OF_OBJECT | MAY_BE_OBJECT),
- I0("restore_error_handler", MAY_BE_NULL | MAY_BE_TRUE),
- F1("get_declared_traits", MAY_BE_NULL | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING),
- F1("get_declared_classes", MAY_BE_NULL | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING),
- F1("get_declared_interfaces", MAY_BE_NULL | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING),
+ I0("restore_error_handler", MAY_BE_TRUE),
+ I0("restore_exception_handler", MAY_BE_TRUE),
+ I1("get_declared_traits", MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING),
+ I1("get_declared_classes", MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING),
+ I1("get_declared_interfaces", MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING),
F1("get_defined_functions", MAY_BE_NULL | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_STRING | MAY_BE_ARRAY_OF_ARRAY),
I1("get_defined_vars", MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_STRING | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF),
FN("create_function", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE | MAY_BE_STRING),
@@ -302,10 +303,10 @@ static const func_info_t func_infos[] = {
F0("phpinfo", MAY_BE_NULL | MAY_BE_TRUE),
F1("phpversion", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
F0("phpcredits", MAY_BE_NULL | MAY_BE_TRUE),
- F1("php_sapi_name", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
+ I1("php_sapi_name", MAY_BE_FALSE | MAY_BE_STRING),
F1("php_uname", MAY_BE_NULL | MAY_BE_STRING),
- F1("php_ini_scanned_files", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
- F1("php_ini_loaded_file", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
+ I1("php_ini_scanned_files", MAY_BE_FALSE | MAY_BE_STRING),
+ I1("php_ini_loaded_file", MAY_BE_FALSE | MAY_BE_STRING),
F0("strnatcmp", MAY_BE_NULL | MAY_BE_LONG),
F0("strnatcasecmp", MAY_BE_NULL | MAY_BE_LONG),
F0("substr_count", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_LONG),
@@ -364,7 +365,7 @@ static const func_info_t func_infos[] = {
FN("implode", MAY_BE_NULL | MAY_BE_STRING),
FN("join", MAY_BE_NULL | MAY_BE_STRING),
FN("setlocale", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
- F1("localeconv", MAY_BE_NULL | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_STRING | MAY_BE_ARRAY_OF_LONG | MAY_BE_ARRAY_OF_STRING | MAY_BE_ARRAY_OF_ARRAY),
+ F1("localeconv", MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_STRING | MAY_BE_ARRAY_OF_LONG | MAY_BE_ARRAY_OF_STRING | MAY_BE_ARRAY_OF_ARRAY),
#if HAVE_NL_LANGINFO
F1("nl_langinfo", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
#endif
@@ -418,7 +419,7 @@ static const func_info_t func_infos[] = {
F0("getrandmax", MAY_BE_NULL | MAY_BE_LONG),
F0("mt_rand", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_LONG),
F0("mt_srand", MAY_BE_NULL),
- F0("mt_getrandmax", MAY_BE_NULL | MAY_BE_LONG),
+ I0("mt_getrandmax", MAY_BE_LONG),
#if HAVE_GETSERVBYNAME
F0("getservbyname", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_LONG),
#endif
@@ -431,11 +432,11 @@ static const func_info_t func_infos[] = {
#if HAVE_GETPROTOBYNUMBER
F1("getprotobynumber", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
#endif
- F0("getmyuid", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_LONG),
- F0("getmygid", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_LONG),
- F0("getmypid", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_LONG),
- F0("getmyinode", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_LONG),
- F0("getlastmod", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_LONG),
+ F0("getmyuid", MAY_BE_FALSE | MAY_BE_LONG),
+ F0("getmygid", MAY_BE_FALSE | MAY_BE_LONG),
+ F0("getmypid", MAY_BE_FALSE | MAY_BE_LONG),
+ F0("getmyinode", MAY_BE_FALSE | MAY_BE_LONG),
+ F0("getlastmod", MAY_BE_FALSE | MAY_BE_LONG),
F1("base64_decode", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
F1("base64_encode", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
F1("password_hash", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
@@ -498,7 +499,7 @@ static const func_info_t func_infos[] = {
#endif
F1("getopt", MAY_BE_FALSE | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_FALSE | MAY_BE_ARRAY_OF_TRUE | MAY_BE_ARRAY_OF_STRING | MAY_BE_ARRAY_OF_ARRAY),
#ifdef HAVE_GETLOADAVG
- F1("sys_getloadavg", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_DOUBLE),
+ F1("sys_getloadavg", MAY_BE_FALSE | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_DOUBLE),
#endif
#ifdef HAVE_GETTIMEOFDAY
F1("microtime", MAY_BE_NULL | MAY_BE_DOUBLE | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_LONG | MAY_BE_STRING),
@@ -513,16 +514,16 @@ static const func_info_t func_infos[] = {
F1("quoted_printable_decode", MAY_BE_NULL | MAY_BE_STRING),
F1("quoted_printable_encode", MAY_BE_NULL | MAY_BE_STRING),
F1("convert_cyr_string", MAY_BE_NULL | MAY_BE_STRING),
- F1("get_current_user", MAY_BE_NULL | MAY_BE_STRING),
+ I1("get_current_user", MAY_BE_STRING),
F0("set_time_limit", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE),
F0("header_register_callback", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE),
F1("get_cfg_var", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_STRING | MAY_BE_ARRAY_OF_ARRAY),
- F0("magic_quotes_runtime", MAY_BE_NULL | MAY_BE_FALSE),
- F0("set_magic_quotes_runtime", MAY_BE_NULL | MAY_BE_FALSE),
- F0("get_magic_quotes_gpc", MAY_BE_NULL | MAY_BE_FALSE),
- F0("get_magic_quotes_runtime", MAY_BE_NULL | MAY_BE_FALSE),
+ I0("magic_quotes_runtime", MAY_BE_FALSE),
+ I0("set_magic_quotes_runtime", MAY_BE_FALSE),
+ I0("get_magic_quotes_gpc", MAY_BE_FALSE),
+ I0("get_magic_quotes_runtime", MAY_BE_FALSE),
F0("error_log", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE),
- F1("error_get_last", MAY_BE_NULL | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_STRING | MAY_BE_ARRAY_OF_LONG | MAY_BE_ARRAY_OF_STRING),
+ I1("error_get_last", MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_STRING | MAY_BE_ARRAY_OF_LONG | MAY_BE_ARRAY_OF_STRING),
FN("call_user_func", UNKNOWN_INFO),
FN("call_user_func_array", UNKNOWN_INFO),
FN("call_user_method", UNKNOWN_INFO),
@@ -549,7 +550,7 @@ static const func_info_t func_infos[] = {
FN("ini_set", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
F1("ini_alter", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
F0("ini_restore", MAY_BE_NULL),
- F1("get_include_path", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
+ I1("get_include_path", MAY_BE_FALSE | MAY_BE_STRING),
F1("set_include_path", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
F0("restore_include_path", MAY_BE_NULL),
F0("setcookie", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE),
@@ -557,7 +558,7 @@ static const func_info_t func_infos[] = {
F0("header", MAY_BE_NULL),
F0("header_remove", MAY_BE_NULL),
F0("headers_sent", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE),
- F1("headers_list", MAY_BE_FALSE | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING),
+ F1("headers_list", MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING),
F0("http_response_code", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_LONG),
F0("connection_aborted", MAY_BE_LONG),
F0("connection_status", MAY_BE_LONG),
@@ -573,7 +574,7 @@ static const func_info_t func_infos[] = {
F1("gethostbyname", MAY_BE_NULL | MAY_BE_STRING),
F1("gethostbynamel", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING),
#ifdef HAVE_GETHOSTNAME
- F1("gethostname", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
+ F1("gethostname", MAY_BE_FALSE | MAY_BE_STRING),
#endif
#if defined(PHP_WIN32) || HAVE_DNS_SEARCH_FUNC
F0("dns_check_record", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE),
@@ -631,7 +632,7 @@ static const func_info_t func_infos[] = {
F0("rename", MAY_BE_FALSE | MAY_BE_TRUE),
F0("copy", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE),
F1("tempnam", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
- F1("tmpfile", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_RESOURCE),
+ F1("tmpfile", MAY_BE_FALSE | MAY_BE_RESOURCE),
F1("file", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING),
F1("file_get_contents", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
F0("file_put_contents", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_LONG),
@@ -679,8 +680,8 @@ static const func_info_t func_infos[] = {
F0("stream_register_wrapper", MAY_BE_FALSE | MAY_BE_TRUE),
F0("stream_wrapper_unregister", MAY_BE_FALSE | MAY_BE_TRUE),
F0("stream_wrapper_restore", MAY_BE_FALSE | MAY_BE_TRUE),
- F1("stream_get_wrappers", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING),
- F1("stream_get_transports", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING),
+ F1("stream_get_wrappers", MAY_BE_FALSE | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING),
+ F1("stream_get_transports", MAY_BE_FALSE | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING),
F1("stream_resolve_include_path", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
F0("stream_is_local", MAY_BE_FALSE | MAY_BE_TRUE),
F1("get_headers", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING | MAY_BE_ARRAY_OF_ARRAY),
@@ -707,7 +708,7 @@ static const func_info_t func_infos[] = {
#if defined(HAVE_CHROOT) && !defined(ZTS) && ENABLE_CHROOT_FUNC
F0("chroot", MAY_BE_FALSE | MAY_BE_TRUE),
#endif
- F1("getcwd", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
+ F1("getcwd", MAY_BE_FALSE | MAY_BE_STRING),
F0("rewinddir", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE),
F1("readdir", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
F1("dir", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_OBJECT),
@@ -750,14 +751,14 @@ static const func_info_t func_infos[] = {
F0("disk_total_space", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_DOUBLE),
F0("disk_free_space", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_DOUBLE),
F0("diskfreespace", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_DOUBLE),
- F0("realpath_cache_size", MAY_BE_NULL | MAY_BE_LONG),
- F1("realpath_cache_get", MAY_BE_NULL | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_STRING | MAY_BE_ARRAY_OF_ARRAY),
+ I0("realpath_cache_size", MAY_BE_LONG),
+ I1("realpath_cache_get", MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_STRING | MAY_BE_ARRAY_OF_ARRAY),
F0("mail", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE),
F0("ezmlm_hash", MAY_BE_NULL | MAY_BE_LONG),
#ifdef HAVE_SYSLOG_H
F0("openlog", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE),
F0("syslog", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE),
- F0("closelog", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE),
+ F0("closelog", MAY_BE_TRUE),
#endif
F0("lcg_value", MAY_BE_DOUBLE),
F1("metaphone", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
@@ -859,7 +860,7 @@ static const func_info_t func_infos[] = {
F0("ftok", MAY_BE_NULL | MAY_BE_LONG),
#endif
F1("str_rot13", MAY_BE_NULL | MAY_BE_STRING),
- F1("stream_get_filters", MAY_BE_NULL | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING),
+ I1("stream_get_filters", MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING),
F0("stream_filter_register", MAY_BE_FALSE | MAY_BE_TRUE),
F1("stream_bucket_make_writeable", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_OBJECT),
F1("stream_bucket_prepend", MAY_BE_FALSE | MAY_BE_OBJECT),
@@ -867,7 +868,7 @@ static const func_info_t func_infos[] = {
F1("stream_bucket_new", MAY_BE_FALSE | MAY_BE_OBJECT),
F0("output_add_rewrite_var", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE),
F0("output_reset_rewrite_vars", MAY_BE_FALSE),
- F1("sys_get_temp_dir", MAY_BE_NULL | MAY_BE_STRING),
+ I1("sys_get_temp_dir", MAY_BE_STRING),
/* ext/date */
F0("strtotime", MAY_BE_FALSE | MAY_BE_LONG),
@@ -1013,7 +1014,7 @@ static const func_info_t func_infos[] = {
F0("mysqli_close", MAY_BE_NULL | MAY_BE_TRUE),
I1("mysqli_connect_error", MAY_BE_NULL | MAY_BE_STRING),
I0("mysqli_connect_errno", MAY_BE_LONG),
- F1("mysqli_get_client_stats", MAY_BE_NULL | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_STRING | MAY_BE_ARRAY_OF_LONG),
+ F1("mysqli_get_client_stats", MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_STRING | MAY_BE_ARRAY_OF_STRING),
F1("mysqli_error_list", MAY_BE_NULL | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_ARRAY),
F1("mysqli_get_links_stats", MAY_BE_NULL | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_STRING | MAY_BE_ARRAY_OF_LONG),
F1("mysqli_query", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE | MAY_BE_RESOURCE),
@@ -1126,7 +1127,7 @@ static const func_info_t func_infos[] = {
F1("curl_escape", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
F1("curl_unescape", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
F0("curl_pause", MAY_BE_NULL | MAY_BE_LONG),
- F1("curl_multi_init", MAY_BE_NULL | MAY_BE_RESOURCE),
+ F1("curl_multi_init", MAY_BE_RESOURCE),
F0("curl_multi_add_handle", MAY_BE_NULL | MAY_BE_LONG),
F0("curl_multi_remove_handle", MAY_BE_NULL | MAY_BE_LONG),
F0("curl_multi_select", MAY_BE_NULL | MAY_BE_LONG),
@@ -1135,7 +1136,7 @@ static const func_info_t func_infos[] = {
F1("curl_multi_info_read", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_LONG | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_STRING | MAY_BE_ARRAY_OF_LONG | MAY_BE_ARRAY_OF_RESOURCE),
F0("curl_multi_close", MAY_BE_NULL),
F0("curl_multi_setopt", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE),
- F1("curl_share_init", MAY_BE_NULL | MAY_BE_RESOURCE),
+ I1("curl_share_init", MAY_BE_RESOURCE),
F0("curl_share_close", MAY_BE_NULL),
F0("curl_share_setopt", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE),
F1("curl_file_create", MAY_BE_OBJECT),
@@ -1169,7 +1170,7 @@ static const func_info_t func_infos[] = {
F1("mb_strimwidth", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
F1("mb_convert_encoding", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY),
F1("mb_detect_encoding", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
- F1("mb_list_encodings", MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING),
+ I1("mb_list_encodings", MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING),
F1("mb_encoding_aliases", MAY_BE_FALSE | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING),
F1("mb_convert_kana", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
F1("mb_encode_mimeheader", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
@@ -1228,8 +1229,8 @@ static const func_info_t func_infos[] = {
/* ext/json */
F1("json_encode", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
F1("json_decode", MAY_BE_ANY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY),
- F0("json_last_error", MAY_BE_NULL | MAY_BE_LONG),
- F1("json_last_error_msg", MAY_BE_NULL | MAY_BE_STRING),
+ I0("json_last_error", MAY_BE_LONG),
+ I1("json_last_error_msg", MAY_BE_STRING),
/* ext/xml */
FN("xml_parser_create", MAY_BE_FALSE | MAY_BE_RESOURCE),
@@ -1281,7 +1282,7 @@ static const func_info_t func_infos[] = {
F1("gzdecode", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
F1("zlib_encode", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
F1("zlib_decode", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
- F1("zlib_get_coding_type", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
+ I1("zlib_get_coding_type", MAY_BE_FALSE | MAY_BE_STRING),
F1("ob_gzhandler", MAY_BE_FALSE | MAY_BE_STRING),
/* ext/hash */
@@ -1300,7 +1301,7 @@ static const func_info_t func_infos[] = {
F1("mhash_keygen_s2k", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
F0("mhash_get_block_size", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_LONG),
F1("mhash_get_hash_name", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
- F0("mhash_count", MAY_BE_NULL | MAY_BE_LONG),
+ I0("mhash_count", MAY_BE_LONG),
F1("mhash", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
/* ext/sodium */
@@ -1315,7 +1316,7 @@ static const func_info_t func_infos[] = {
F1("sodium_crypto_generichash_init", MAY_BE_NULL | MAY_BE_STRING),
F0("sodium_crypto_generichash_update", MAY_BE_NULL | MAY_BE_TRUE),
F1("sodium_crypto_generichash_final", MAY_BE_NULL | MAY_BE_STRING),
- F1("sodium_crypto_box_keypair", MAY_BE_NULL | MAY_BE_STRING),
+ F1("sodium_crypto_box_keypair", MAY_BE_STRING),
F1("sodium_crypto_box_seed_keypair", MAY_BE_NULL | MAY_BE_STRING),
F1("sodium_crypto_box_secretkey", MAY_BE_NULL | MAY_BE_STRING),
F1("sodium_crypto_box_publickey", MAY_BE_NULL | MAY_BE_STRING),
@@ -1323,7 +1324,7 @@ static const func_info_t func_infos[] = {
F1("sodium_crypto_box_open", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
F1("sodium_crypto_box_seal", MAY_BE_NULL | MAY_BE_STRING),
F1("sodium_crypto_box_seal_open", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
- F1("sodium_crypto_sign_keypair", MAY_BE_NULL | MAY_BE_STRING),
+ F1("sodium_crypto_sign_keypair", MAY_BE_STRING),
F1("sodium_crypto_sign_seed_keypair", MAY_BE_NULL | MAY_BE_STRING),
F1("sodium_crypto_sign_secretkey", MAY_BE_NULL | MAY_BE_STRING),
F1("sodium_crypto_sign_publickey", MAY_BE_NULL | MAY_BE_STRING),
@@ -1342,7 +1343,7 @@ static const func_info_t func_infos[] = {
F1("sodium_hex2bin", MAY_BE_NULL | MAY_BE_STRING),
F1("sodium_crypto_scalarmult", MAY_BE_NULL | MAY_BE_STRING),
F1("sodium_crypto_kx_seed_keypair", MAY_BE_NULL | MAY_BE_STRING),
- F1("sodium_crypto_kx_keypair", MAY_BE_NULL | MAY_BE_STRING),
+ F1("sodium_crypto_kx_keypair", MAY_BE_STRING),
F1("sodium_crypto_kx_secretkey", MAY_BE_NULL | MAY_BE_STRING),
F1("sodium_crypto_kx_publickey", MAY_BE_NULL | MAY_BE_STRING),
F1("sodium_crypto_kx_client_session_keys", MAY_BE_NULL | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING),
@@ -1350,13 +1351,13 @@ static const func_info_t func_infos[] = {
F1("sodium_crypto_auth", MAY_BE_NULL | MAY_BE_STRING),
F0("sodium_crypto_auth_verify", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE),
F0("sodium_compare", MAY_BE_NULL | MAY_BE_LONG),
- F1("sodium_crypto_aead_aes256gcm_keygen", MAY_BE_NULL | MAY_BE_STRING),
- F1("sodium_crypto_auth_keygen", MAY_BE_NULL | MAY_BE_STRING),
- F1("sodium_crypto_generichash_keygen", MAY_BE_NULL | MAY_BE_STRING),
- F1("sodium_crypto_kdf_keygen", MAY_BE_NULL | MAY_BE_STRING),
- F1("sodium_crypto_secretbox_keygen", MAY_BE_NULL | MAY_BE_STRING),
- F1("sodium_crypto_shorthash_keygen", MAY_BE_NULL | MAY_BE_STRING),
- F1("sodium_crypto_stream_keygen", MAY_BE_NULL | MAY_BE_STRING),
+ F1("sodium_crypto_aead_aes256gcm_keygen", MAY_BE_STRING),
+ F1("sodium_crypto_auth_keygen", MAY_BE_STRING),
+ F1("sodium_crypto_generichash_keygen", MAY_BE_STRING),
+ F1("sodium_crypto_kdf_keygen", MAY_BE_STRING),
+ F1("sodium_crypto_secretbox_keygen", MAY_BE_STRING),
+ F1("sodium_crypto_shorthash_keygen", MAY_BE_STRING),
+ F1("sodium_crypto_stream_keygen", MAY_BE_STRING),
F1("sodium_crypto_kdf_derive_from_key", MAY_BE_NULL | MAY_BE_STRING),
F1("sodium_pad", MAY_BE_NULL | MAY_BE_STRING),
F1("sodium_unpad", MAY_BE_NULL | MAY_BE_STRING),
@@ -1368,7 +1369,7 @@ static const func_info_t func_infos[] = {
F1("sodium_crypto_pwhash_scryptsalsa208sha256", MAY_BE_NULL | MAY_BE_STRING),
F1("sodium_crypto_pwhash_scryptsalsa208sha256_str", MAY_BE_NULL | MAY_BE_STRING),
F0("sodium_crypto_pwhash_scryptsalsa208sha256_str_verify", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE),
- F0("sodium_crypto_aead_aes256gcm_is_available", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE),
+ F0("sodium_crypto_aead_aes256gcm_is_available", MAY_BE_FALSE | MAY_BE_TRUE),
F1("sodium_crypto_sign_ed25519_sk_to_curve25519", MAY_BE_NULL | MAY_BE_STRING),
F1("sodium_crypto_sign_ed25519_pk_to_curve25519", MAY_BE_NULL | MAY_BE_STRING),
F1("sodium_crypto_aead_chacha20poly1305_encrypt", MAY_BE_NULL | MAY_BE_STRING),
@@ -1377,13 +1378,13 @@ static const func_info_t func_infos[] = {
F1("sodium_crypto_aead_chacha20poly1305_ietf_decrypt", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
F1("sodium_crypto_aead_xchacha20poly1305_ietf_encrypt", MAY_BE_NULL | MAY_BE_STRING),
F1("sodium_crypto_aead_xchacha20poly1305_ietf_decrypt", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
- F1("sodium_crypto_aead_chacha20poly1305_keygen", MAY_BE_NULL | MAY_BE_STRING),
- F1("sodium_crypto_aead_chacha20poly1305_ietf_keygen", MAY_BE_NULL | MAY_BE_STRING),
- F1("sodium_crypto_aead_xchacha20poly1305_ietf_keygen", MAY_BE_NULL | MAY_BE_STRING),
+ F1("sodium_crypto_aead_chacha20poly1305_keygen", MAY_BE_STRING),
+ F1("sodium_crypto_aead_chacha20poly1305_ietf_keygen", MAY_BE_STRING),
+ F1("sodium_crypto_aead_xchacha20poly1305_ietf_keygen", MAY_BE_STRING),
/* ext/session */
F0("session_set_cookie_params", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE),
- F1("session_get_cookie_params", MAY_BE_NULL | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_STRING | MAY_BE_ARRAY_OF_ANY),
+ I1("session_get_cookie_params", MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_STRING | MAY_BE_ARRAY_OF_ANY),
F1("session_name", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
F1("session_module_name", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
F0("session_set_save_handler", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE),
@@ -1393,14 +1394,14 @@ static const func_info_t func_infos[] = {
F1("session_create_id", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
F1("session_cache_limiter", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
F0("session_cache_expire", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_LONG),
- F1("session_encode", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
+ I1("session_encode", MAY_BE_FALSE | MAY_BE_STRING),
F0("session_decode", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE),
F0("session_start", MAY_BE_FALSE | MAY_BE_TRUE),
- F0("session_destroy", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE),
- F0("session_unset", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE),
- F0("session_gc", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_LONG),
- F0("session_write_close", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE),
- F0("session_abort", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE),
+ I0("session_destroy", MAY_BE_FALSE | MAY_BE_TRUE),
+ I0("session_unset", MAY_BE_FALSE | MAY_BE_TRUE),
+ F0("session_gc", MAY_BE_FALSE | MAY_BE_LONG),
+ F0("session_write_close", MAY_BE_FALSE | MAY_BE_TRUE),
+ F0("session_abort", MAY_BE_FALSE | MAY_BE_TRUE),
F0("session_reset", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE),
F0("session_status", MAY_BE_NULL | MAY_BE_LONG),
I0("session_register_shutdown", MAY_BE_NULL),
@@ -1518,7 +1519,7 @@ static const func_info_t func_infos[] = {
FN("filter_var", UNKNOWN_INFO),
F1("filter_input_array", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY),
F1("filter_var_array", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY),
- F1("filter_list", MAY_BE_NULL | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING),
+ I1("filter_list", MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING),
F0("filter_id", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_LONG),
/* ext/gettext */
@@ -1560,7 +1561,7 @@ static const func_info_t func_infos[] = {
F1("mime_content_type", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
/* ext/gd */
- F1("gd_info", MAY_BE_FALSE | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_STRING | MAY_BE_ARRAY_OF_STRING | MAY_BE_ARRAY_OF_FALSE | MAY_BE_ARRAY_OF_TRUE),
+ F1("gd_info", MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_STRING | MAY_BE_ARRAY_OF_STRING | MAY_BE_ARRAY_OF_FALSE | MAY_BE_ARRAY_OF_TRUE),
F0("imageloadfont", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_LONG),
F0("imagesetstyle", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE),
F1("imagecreatetruecolor", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_RESOURCE),
@@ -1581,13 +1582,13 @@ static const func_info_t func_infos[] = {
F0("imagecopyresampled", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE),
#ifdef PHP_WIN32
F1("imagegrabwindow", MAY_BE_FALSE | MAY_BE_RESOURCE),
- F1("imagegrabscreen", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_RESOURCE),
+ F1("imagegrabscreen", MAY_BE_FALSE | MAY_BE_RESOURCE),
#endif
F1("imagerotate", MAY_BE_FALSE | MAY_BE_RESOURCE),
F0("imagesettile", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE),
F0("imagesetbrush", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE),
F1("imagecreate", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_RESOURCE),
- F0("imagetypes", MAY_BE_NULL | MAY_BE_LONG),
+ I0("imagetypes", MAY_BE_LONG),
F1("imagecreatefromstring", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_RESOURCE),
F1("imagecreatefromgif", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_RESOURCE),
#ifdef HAVE_GD_JPG
@@ -1697,6 +1698,14 @@ uint32_t zend_get_func_info(const zend_call_info *call_info, const zend_ssa *ssa
ret = MAY_BE_NULL;
} else if (info->info_func) {
ret = info->info_func(call_info, ssa);
+ } else if (/*call_info->callee_func->common.arg_info && */
+ call_info->callee_func->common.num_args == 0 &&
+ call_info->callee_func->common.required_num_args == 0) {
+ if (call_info->num_args == 0) {
+ ret = info->info;
+ } else {
+ ret = FUNC_MAY_WARN | MAY_BE_NULL;
+ }
} else {
ret = info->info;
}
diff --git a/ext/standard/lcg.c b/ext/standard/lcg.c
index af826c547b..f8b7e8d340 100644
--- a/ext/standard/lcg.c
+++ b/ext/standard/lcg.c
@@ -118,6 +118,9 @@ PHP_MINIT_FUNCTION(lcg) /* {{{ */
Returns a value from the combined linear congruential generator */
PHP_FUNCTION(lcg_value)
{
+ if (zend_parse_parameters_none() == FAILURE) {
+ return;
+ }
RETURN_DOUBLE(php_combined_lcg());
}
/* }}} */
diff --git a/ext/standard/tests/math/lcg_value_basic.phpt b/ext/standard/tests/math/lcg_value_basic.phpt
index 6d624d84ab..8fc95190c6 100644
--- a/ext/standard/tests/math/lcg_value_basic.phpt
+++ b/ext/standard/tests/math/lcg_value_basic.phpt
@@ -21,36 +21,38 @@ if ($i != 100) {
echo "PASSED\n";
}
-echo "\n lcg_value error cases..spurious args get ignored\n";
+echo "\n lcg_value error cases..\n";
$res = lcg_value(23);
-if (!is_float($res) || $res < 0 || $res > 1) {
- echo "FAILED\n";
-} else {
+if (is_null($res)) {
echo "PASSED\n";
+} else {
+ echo "FAILED\n";
}
$res = lcg_value(10,false);
-if (!is_float($res) || $res < 0 || $res > 1) {
- echo "FAILED\n";
-} else {
+if (is_null($res)) {
echo "PASSED\n";
+} else {
+ echo "FAILED\n";
}
echo "MATHS test script completed\n";
?>
---EXPECT--
+--EXPECTF--
MATHS test script started
lcg_value tests...
PASSED
- lcg_value error cases..spurious args get ignored
+ lcg_value error cases..
+
+Warning: lcg_value() expects exactly 0 parameters, 1 given in %slcg_value_basic.php on line %d
PASSED
+
+Warning: lcg_value() expects exactly 0 parameters, 2 given in %slcg_value_basic.php on line %d
PASSED
MATHS test script completed
-
-