--- /dev/null
+--TEST--
+Bug #39445 (Calling debug_backtrace() in the __toString() function produces a crash)
+--FILE--
+<?php
+class test {
+ public function __toString() {
+ debug_backtrace();
+ return 'lowercase';
+ }
+}
+
+ $test = new test();
+ echo strtoupper($test);
+?>
+--EXPECT--
+LOWERCASE
while (--arg_count >= 0) {
arg = (zval **) p++;
if (*arg) {
- SEPARATE_ZVAL_TO_MAKE_IS_REF(arg);
+ if ((*arg)->type != IS_OBJECT) {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(arg);
+ }
(*arg)->refcount++;
add_next_index_zval(arg_array, *arg);
} else {