Skip to content

Tracing JIT type mismatch when returning UNDEF #16770

Description

@YuanchengJiang

Description

The following code:

<?php
function utf32_utf8($k) {
return $fusion;
}
for ($i = 0; $i < 0x2710; $i++) {
$str = utf32_utf8($i);
}

Resulted in this output:

ext/opcache/jit/zend_jit_trace.c:348: uint32_t zend_jit_trace_type_to_info_ex(uint8_t, uint32_t): Assertion `info & (1 << type)' failed.
Aborted (core dumped)

To reproduce:

-d "opcache.jit_hot_loop=1" -d "zend_extension=/php-src/modules/opcache.so" -d "opcache.enable_cli=1" -d "opcache.jit=1254"

PHP Version

nightly

Operating System

ubuntu 22.04

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions