Skip to content

Commit 298c1ab

Browse files
committed
Merge branch 'PHP-8.1'
2 parents a3ceb05 + 680afd1 commit 298c1ab

File tree

5 files changed

+32
-9
lines changed

5 files changed

+32
-9
lines changed

Zend/Optimizer/zend_optimizer.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,9 @@ zend_result zend_optimizer_eval_special_func_call(
184184
if (zend_string_equals_literal(name, "ini_get")) {
185185
zend_ini_entry *ini_entry = zend_hash_find_ptr(EG(ini_directives), arg);
186186
if (!ini_entry) {
187+
if (PG(enable_dl)) {
188+
return FAILURE;
189+
}
187190
ZVAL_FALSE(result);
188191
} else if (ini_entry->modifiable != ZEND_INI_SYSTEM) {
189192
return FAILURE;

ext/opcache/tests/gh8466.phpt

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
--TEST--
2+
Bug GH-8466: ini_get() is optimized out when the option does not exist during compilation
3+
--SKIPIF--
4+
<?php include dirname(__DIR__, 2) . "/dl_test/tests/skip.inc"; ?>
5+
--FILE--
6+
<?php
7+
8+
if (extension_loaded('dl_test')) {
9+
exit('Error: dl_test is already loaded');
10+
}
11+
12+
if (PHP_OS_FAMILY === 'Windows') {
13+
$loaded = dl('php_dl_test.dll');
14+
} else {
15+
$loaded = dl('dl_test.so');
16+
}
17+
18+
var_dump($loaded);
19+
20+
var_dump(ini_get('dl_test.long'));
21+
--EXPECT--
22+
bool(true)
23+
string(1) "0"

ext/standard/tests/general_functions/dl-001.phpt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,8 @@ var_dump($loaded);
2020
dl_test_test1();
2121
var_dump(dl_test_test2("World!"));
2222

23-
// ini_get() gets optimized out, so we use ini_get_all() here
24-
var_dump(ini_get_all()["dl_test.long"]["local_value"]);
25-
var_dump(ini_get_all()["dl_test.string"]["local_value"]);
23+
var_dump(ini_get("dl_test.long"));
24+
var_dump(ini_get("dl_test.string"));
2625

2726
echo "OK\n";
2827
--EXPECT--

ext/standard/tests/general_functions/dl-002.phpt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,8 @@ var_dump($loaded);
2121
dl_test_test1();
2222
var_dump(dl_test_test2("World!"));
2323

24-
// ini_get() gets optimized out, so we use ini_get_all() here
25-
var_dump(ini_get_all()["dl_test.long"]["local_value"]);
26-
var_dump(ini_get_all()["dl_test.string"]["local_value"]);
24+
var_dump(ini_get("dl_test.long"));
25+
var_dump(ini_get("dl_test.string"));
2726

2827
echo "OK\n";
2928
--EXPECT--

ext/standard/tests/general_functions/dl-003.phpt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,8 @@ var_dump(dl_test_test2("World!"));
2222
ini_set("dl_test.long", "1");
2323
ini_set("dl_test.string", "world");
2424

25-
// ini_get() gets optimized out, so we use ini_get_all() here
26-
var_dump(ini_get_all()["dl_test.long"]["local_value"]);
27-
var_dump(ini_get_all()["dl_test.string"]["local_value"]);
25+
var_dump(ini_get("dl_test.long"));
26+
var_dump(ini_get("dl_test.string"));
2827

2928
echo "OK\n";
3029
--EXPECT--

0 commit comments

Comments
 (0)