xref: /PHP-7.3/Zend/tests/bug32252.phpt (revision 610c7fbe)
1--TEST--
2Bug #32252 (Segfault when offsetSet throws an Exception (only without debug))
3--FILE--
4<?php
5
6class Test implements ArrayAccess
7{
8	function offsetExists($offset)
9	{
10		echo __METHOD__ . "($offset)\n";
11		return false;
12	}
13
14	function offsetGet($offset)
15	{
16		echo __METHOD__ . "($offset)\n";
17		return null;
18	}
19
20	function offsetSet($offset, $value)
21	{
22		echo __METHOD__ . "($offset, $value)\n";
23		throw new Exception("Ooops");
24	}
25
26	function offsetUnset($offset)
27	{
28		echo __METHOD__ . "($offset)\n";
29	}
30}
31
32$list = new Test();
33try
34{
35    $list[-1] = 123;
36}
37catch (Exception $e)
38{
39	echo "CAUGHT\n";
40}
41
42?>
43===DONE===
44--EXPECT--
45Test::offsetSet(-1, 123)
46CAUGHT
47===DONE===
48