php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
zend_compile.h File Reference
#include "zend_ast.h"
#include "zend_types.h"
#include "zend_map_ptr.h"
#include "zend_alloc.h"
#include <stdarg.h>
#include <stdint.h>
#include "zend_llist.h"
#include "zend_frameless_function.h"
#include "zend_property_hooks.h"
#include "zend_globals.h"
#include "zend_vm_opcodes.h"

Go to the source code of this file.

Data Structures

union  _znode_op
 
struct  _znode
 
struct  _zend_ast_znode
 
struct  _zend_declarables
 
struct  _zend_file_context
 
union  _zend_parser_stack_elem
 
struct  _zend_op
 
struct  _zend_brk_cont_element
 
struct  _zend_label
 
struct  _zend_try_catch_element
 
struct  _zend_live_range
 
struct  _zend_oparray_context
 
struct  _zend_property_info
 
struct  _zend_class_constant
 
struct  _zend_internal_arg_info
 
struct  _zend_arg_info
 
struct  _zend_internal_function_info
 
struct  _zend_op_array
 
struct  _zend_internal_function
 
union  _zend_function
 
struct  _zend_execute_data
 
struct  _zend_auto_global
 

Macros

#define SET_UNUSED(op)
 
#define MAKE_NOP(opline)
 
#define RESET_DOC_COMMENT()
 
#define ZEND_USE_ABS_JMP_ADDR   0
 
#define ZEND_USE_ABS_CONST_ADDR   0
 
#define ZEND_LIVE_TMPVAR   0
 
#define ZEND_LIVE_LOOP   1
 
#define ZEND_LIVE_SILENCE   2
 
#define ZEND_LIVE_ROPE   3
 
#define ZEND_LIVE_NEW   4
 
#define ZEND_LIVE_MASK   7
 
#define ZEND_ACC_PUBLIC   (1 << 0) /* | X | X | X */
 
#define ZEND_ACC_PROTECTED   (1 << 1) /* | X | X | X */
 
#define ZEND_ACC_PRIVATE   (1 << 2) /* | X | X | X */
 
#define ZEND_ACC_CHANGED   (1 << 3) /* | X | X | */
 
#define ZEND_ACC_STATIC   (1 << 4) /* | X | X | */
 
#define ZEND_ACC_FINAL   (1 << 5) /* X | X | X | X */
 
#define ZEND_ACC_ABSTRACT   (1 << 6) /* X | X | X | */
 
#define ZEND_ACC_EXPLICIT_ABSTRACT_CLASS   (1 << 6) /* X | | | */
 
#define ZEND_ACC_READONLY   (1 << 7) /* | | X | */
 
#define ZEND_ACC_IMMUTABLE   (1 << 7) /* X | X | | */
 
#define ZEND_ACC_HAS_TYPE_HINTS   (1 << 8) /* X | X | | */
 
#define ZEND_ACC_TOP_LEVEL   (1 << 9) /* X | X | | */
 
#define ZEND_ACC_PRELOADED   (1 << 10) /* X | X | | */
 
#define ZEND_CLASS_CONST_IS_CASE   (1 << 6) /* | | | X */
 
#define ZEND_ACC_PROMOTED   (1 << 8) /* | | X | */
 
#define ZEND_ACC_VIRTUAL   (1 << 9) /* | | X | */
 
#define ZEND_ACC_PUBLIC_SET   (1 << 10) /* | | X | */
 
#define ZEND_ACC_PROTECTED_SET   (1 << 11) /* | | X | */
 
#define ZEND_ACC_PRIVATE_SET   (1 << 12) /* | | X | */
 
#define ZEND_ACC_INTERFACE   (1 << 0) /* X | | | */
 
#define ZEND_ACC_TRAIT   (1 << 1) /* X | | | */
 
#define ZEND_ACC_ANON_CLASS   (1 << 2) /* X | | | */
 
#define ZEND_ACC_ENUM   (1 << 28) /* X | | | */
 
#define ZEND_ACC_LINKED   (1 << 3) /* X | | | */
 
#define ZEND_ACC_IMPLICIT_ABSTRACT_CLASS   (1 << 4) /* X | | | */
 
#define ZEND_ACC_USE_GUARDS   (1 << 11) /* X | | | */
 
#define ZEND_ACC_CONSTANTS_UPDATED   (1 << 12) /* X | | | */
 
#define ZEND_ACC_NO_DYNAMIC_PROPERTIES   (1 << 13) /* X | | | */
 
#define ZEND_HAS_STATIC_IN_METHODS   (1 << 14) /* X | | | */
 
#define ZEND_ACC_ALLOW_DYNAMIC_PROPERTIES   (1 << 15) /* X | | | */
 
#define ZEND_ACC_READONLY_CLASS   (1 << 16) /* X | | | */
 
#define ZEND_ACC_RESOLVED_PARENT   (1 << 17) /* X | | | */
 
#define ZEND_ACC_RESOLVED_INTERFACES   (1 << 18) /* X | | | */
 
#define ZEND_ACC_UNRESOLVED_VARIANCE   (1 << 19) /* X | | | */
 
#define ZEND_ACC_NEARLY_LINKED   (1 << 20) /* X | | | */
 
#define ZEND_ACC_HAS_READONLY_PROPS   (1 << 21) /* X | | | */
 
#define ZEND_ACC_CACHED   (1 << 22) /* X | | | */
 
#define ZEND_ACC_CACHEABLE   (1 << 23) /* X | | | */
 
#define ZEND_ACC_HAS_AST_CONSTANTS   (1 << 24) /* X | | | */
 
#define ZEND_ACC_HAS_AST_PROPERTIES   (1 << 25) /* X | | | */
 
#define ZEND_ACC_HAS_AST_STATICS   (1 << 26) /* X | | | */
 
#define ZEND_ACC_FILE_CACHED   (1 << 27) /* X | | | */
 
#define ZEND_ACC_NOT_SERIALIZABLE   (1 << 29) /* X | | | */
 
#define ZEND_ACC_DEPRECATED   (1 << 11) /* | X | | X */
 
#define ZEND_ACC_RETURN_REFERENCE   (1 << 12) /* | X | | */
 
#define ZEND_ACC_HAS_RETURN_TYPE   (1 << 13) /* | X | | */
 
#define ZEND_ACC_VARIADIC   (1 << 14) /* | X | | */
 
#define ZEND_ACC_HAS_FINALLY_BLOCK   (1 << 15) /* | X | | */
 
#define ZEND_ACC_EARLY_BINDING   (1 << 16) /* | X | | */
 
#define ZEND_ACC_USES_THIS   (1 << 17) /* | X | | */
 
#define ZEND_ACC_CALL_VIA_TRAMPOLINE   (1 << 18) /* | X | | */
 
#define ZEND_ACC_NEVER_CACHE   (1 << 19) /* | X | | */
 
#define ZEND_ACC_TRAIT_CLONE   (1 << 20) /* | X | | */
 
#define ZEND_ACC_CTOR   (1 << 21) /* | X | | */
 
#define ZEND_ACC_CLOSURE   (1 << 22) /* | X | | */
 
#define ZEND_ACC_FAKE_CLOSURE   (1 << 23) /* | X | | */ /* Same as ZEND_CALL_FAKE_CLOSURE */
 
#define ZEND_ACC_GENERATOR   (1 << 24) /* | X | | */
 
#define ZEND_ACC_DONE_PASS_TWO   (1 << 25) /* | X | | */
 
#define ZEND_ACC_ARENA_ALLOCATED   (1 << 25) /* | X | | */
 
#define ZEND_ACC_HEAP_RT_CACHE   (1 << 26) /* | X | | */
 
#define ZEND_ACC_USER_ARG_INFO   (1 << 26) /* | X | | */
 
#define ZEND_ACC_COMPILE_TIME_EVAL   (1 << 27) /* | X | | */
 
#define ZEND_ACC_OVERRIDE   (1 << 28) /* | X | | */
 
#define ZEND_ACC_STRICT_TYPES   (1U << 31) /* | X | | */
 
#define ZEND_ACC_PPP_MASK   (ZEND_ACC_PUBLIC | ZEND_ACC_PROTECTED | ZEND_ACC_PRIVATE)
 
#define ZEND_ACC_PPP_SET_MASK   (ZEND_ACC_PUBLIC_SET | ZEND_ACC_PROTECTED_SET | ZEND_ACC_PRIVATE_SET)
 
#define ZEND_ACC_CALL_VIA_HANDLER   ZEND_ACC_CALL_VIA_TRAMPOLINE
 
#define ZEND_ACC_UNINSTANTIABLE
 
#define ZEND_SHORT_CIRCUITING_CHAIN_MASK   0x3
 
#define ZEND_SHORT_CIRCUITING_CHAIN_EXPR   0
 
#define ZEND_SHORT_CIRCUITING_CHAIN_ISSET   1
 
#define ZEND_SHORT_CIRCUITING_CHAIN_EMPTY   2
 
#define ZEND_JMP_NULL_BP_VAR_IS   4
 
#define ZEND_PROPERTY_HOOK_COUNT   2
 
#define ZEND_PROPERTY_HOOK_STRUCT_SIZE   (sizeof(zend_function*) * ZEND_PROPERTY_HOOK_COUNT)
 
#define ZEND_VIRTUAL_PROPERTY_OFFSET   ((uint32_t)-1)
 
#define OBJ_PROP(obj, offset)
 
#define OBJ_PROP_NUM(obj, num)
 
#define OBJ_PROP_TO_OFFSET(num)
 
#define OBJ_PROP_TO_NUM(offset)
 
#define OBJ_PROP_SLOT_TO_OFFSET(obj, slot)
 
#define ZEND_CLASS_CONST_FLAGS(c)
 
#define ZEND_RETURN_VALUE   0
 
#define ZEND_RETURN_REFERENCE   1
 
#define INTERNAL_FUNCTION_PARAMETERS   zend_execute_data *execute_data, zval *return_value
 
#define INTERNAL_FUNCTION_PARAM_PASSTHRU   execute_data, return_value
 
#define ZEND_FN_SCOPE_NAME(function)
 
#define ZEND_CALL_HAS_THIS   IS_OBJECT_EX
 
#define ZEND_CALL_FUNCTION   (0 << 16)
 
#define ZEND_CALL_CODE   (1 << 16)
 
#define ZEND_CALL_NESTED   (0 << 17)
 
#define ZEND_CALL_TOP   (1 << 17)
 
#define ZEND_CALL_ALLOCATED   (1 << 18)
 
#define ZEND_CALL_FREE_EXTRA_ARGS   (1 << 19)
 
#define ZEND_CALL_HAS_SYMBOL_TABLE   (1 << 20)
 
#define ZEND_CALL_RELEASE_THIS   (1 << 21)
 
#define ZEND_CALL_CLOSURE   (1 << 22)
 
#define ZEND_CALL_FAKE_CLOSURE   (1 << 23) /* Same as ZEND_ACC_FAKE_CLOSURE */
 
#define ZEND_CALL_GENERATOR   (1 << 24)
 
#define ZEND_CALL_DYNAMIC   (1 << 25)
 
#define ZEND_CALL_MAY_HAVE_UNDEF   (1 << 26)
 
#define ZEND_CALL_HAS_EXTRA_NAMED_PARAMS   (1 << 27)
 
#define ZEND_CALL_OBSERVED   (1 << 28) /* "fcall_begin" observer handler may set this flag */
 
#define ZEND_CALL_JIT_RESERVED   (1 << 29) /* reserved for tracing JIT */
 
#define ZEND_CALL_NEEDS_REATTACH   (1 << 30)
 
#define ZEND_CALL_SEND_ARG_BY_REF   (1u << 31)
 
#define ZEND_CALL_NESTED_FUNCTION   (ZEND_CALL_FUNCTION | ZEND_CALL_NESTED)
 
#define ZEND_CALL_NESTED_CODE   (ZEND_CALL_CODE | ZEND_CALL_NESTED)
 
#define ZEND_CALL_TOP_FUNCTION   (ZEND_CALL_TOP | ZEND_CALL_FUNCTION)
 
#define ZEND_CALL_TOP_CODE   (ZEND_CALL_CODE | ZEND_CALL_TOP)
 
#define ZEND_CALL_INFO(call)
 
#define ZEND_CALL_KIND_EX(call_info)
 
#define ZEND_CALL_KIND(call)
 
#define ZEND_ADD_CALL_FLAG_EX(call_info, flag)
 
#define ZEND_DEL_CALL_FLAG_EX(call_info, flag)
 
#define ZEND_ADD_CALL_FLAG(call, flag)
 
#define ZEND_DEL_CALL_FLAG(call, flag)
 
#define ZEND_CALL_NUM_ARGS(call)
 
#define ZEND_CALL_FRAME_SLOT    ((int)((sizeof(zend_execute_data) + sizeof(zval) - 1) / sizeof(zval)))
 
#define ZEND_CALL_VAR(call, n)
 
#define ZEND_CALL_VAR_NUM(call, n)
 
#define ZEND_CALL_ARG(call, n)
 
#define EX(element)
 
#define EX_CALL_INFO()
 
#define EX_CALL_KIND()
 
#define EX_NUM_ARGS()
 
#define ZEND_CALL_USES_STRICT_TYPES(call)
 
#define EX_USES_STRICT_TYPES()
 
#define ZEND_ARG_USES_STRICT_TYPES()
 
#define ZEND_FLF_ARG_USES_STRICT_TYPES()
 
#define ZEND_RET_USES_STRICT_TYPES()
 
#define EX_VAR(n)
 
#define EX_VAR_NUM(n)
 
#define EX_VAR_TO_NUM(n)
 
#define EX_NUM_TO_VAR(n)
 
#define ZEND_OPLINE_TO_OFFSET(opline, target)
 
#define ZEND_OPLINE_NUM_TO_OFFSET(op_array, opline, opline_num)
 
#define ZEND_OFFSET_TO_OPLINE(base, offset)
 
#define ZEND_OFFSET_TO_OPLINE_NUM(op_array, base, offset)
 
#define OP_JMP_ADDR(opline, node)
 
#define ZEND_SET_OP_JMP_ADDR(opline, node, val)
 
#define ZEND_PASS_TWO_UPDATE_JMP_TARGET(op_array, opline, node)
 
#define ZEND_PASS_TWO_UNDO_JMP_TARGET(op_array, opline, node)
 
#define CT_CONSTANT_EX(op_array, num)
 
#define CT_CONSTANT(node)
 
#define RT_CONSTANT(opline, node)
 
#define ZEND_PASS_TWO_UPDATE_CONSTANT(op_array, opline, node)
 
#define ZEND_PASS_TWO_UNDO_CONSTANT(op_array, opline, node)
 
#define RUN_TIME_CACHE(op_array)
 
#define ZEND_OP_ARRAY_EXTENSION(op_array, handle)
 
#define IS_UNUSED   0 /* Unused operand */
 
#define IS_CONST   (1<<0)
 
#define IS_TMP_VAR   (1<<1)
 
#define IS_VAR   (1<<2)
 
#define IS_CV   (1<<3) /* Compiled variable */
 
#define IS_SMART_BRANCH_JMPZ   (1<<4)
 
#define IS_SMART_BRANCH_JMPNZ   (1<<5)
 
#define ZEND_EXTRA_VALUE   1
 
#define INITIAL_OP_ARRAY_SIZE   64
 
#define zend_try_exception_handler()
 
#define zend_unmangle_property_name(mangled_property, class_name, prop_name)
 
#define ZEND_FUNCTION_DTOR   zend_function_dtor
 
#define ZEND_CLASS_DTOR   destroy_zend_class
 
#define ZEND_FETCH_CLASS_DEFAULT   0
 
#define ZEND_FETCH_CLASS_SELF   1
 
#define ZEND_FETCH_CLASS_PARENT   2
 
#define ZEND_FETCH_CLASS_STATIC   3
 
#define ZEND_FETCH_CLASS_AUTO   4
 
#define ZEND_FETCH_CLASS_INTERFACE   5
 
#define ZEND_FETCH_CLASS_TRAIT   6
 
#define ZEND_FETCH_CLASS_MASK   0x0f
 
#define ZEND_FETCH_CLASS_NO_AUTOLOAD   0x80
 
#define ZEND_FETCH_CLASS_SILENT   0x0100
 
#define ZEND_FETCH_CLASS_EXCEPTION   0x0200
 
#define ZEND_FETCH_CLASS_ALLOW_UNLINKED   0x0400
 
#define ZEND_FETCH_CLASS_ALLOW_NEARLY_LINKED   0x0800
 
#define ZEND_PARAM_REF   (1<<3)
 
#define ZEND_PARAM_VARIADIC   (1<<4)
 
#define ZEND_NAME_FQ   0
 
#define ZEND_NAME_NOT_FQ   1
 
#define ZEND_NAME_RELATIVE   2
 
#define ZEND_CONST_EXPR_NEW_FETCH_TYPE_SHIFT   2
 
#define ZEND_TYPE_NULLABLE   (1<<8)
 
#define ZEND_ARRAY_SYNTAX_LIST   1 /* list() */
 
#define ZEND_ARRAY_SYNTAX_LONG   2 /* array() */
 
#define ZEND_ARRAY_SYNTAX_SHORT   3 /* [] */
 
#define BP_VAR_R   0
 
#define BP_VAR_W   1
 
#define BP_VAR_RW   2
 
#define BP_VAR_IS   3
 
#define BP_VAR_FUNC_ARG   4
 
#define BP_VAR_UNSET   5
 
#define ZEND_INTERNAL_FUNCTION   1
 
#define ZEND_USER_FUNCTION   2
 
#define ZEND_EVAL_CODE   4
 
#define ZEND_USER_CODE(type)
 
#define ZEND_INTERNAL_CLASS   1
 
#define ZEND_USER_CLASS   2
 
#define ZEND_EVAL   (1<<0)
 
#define ZEND_INCLUDE   (1<<1)
 
#define ZEND_INCLUDE_ONCE   (1<<2)
 
#define ZEND_REQUIRE   (1<<3)
 
#define ZEND_REQUIRE_ONCE   (1<<4)
 
#define ZEND_FETCH_GLOBAL   (1<<1)
 
#define ZEND_FETCH_LOCAL   (1<<2)
 
#define ZEND_FETCH_GLOBAL_LOCK   (1<<3)
 
#define ZEND_FETCH_TYPE_MASK   0xe
 
#define ZEND_FETCH_REF   1
 
#define ZEND_FETCH_DIM_WRITE   2
 
#define ZEND_FETCH_OBJ_FLAGS   3
 
#define ZEND_FETCH_DIM_REF   1
 
#define ZEND_FETCH_DIM_DIM   2
 
#define ZEND_FETCH_DIM_OBJ   3
 
#define ZEND_FETCH_DIM_INCDEC   4
 
#define ZEND_ISEMPTY   (1<<0)
 
#define ZEND_LAST_CATCH   (1<<0)
 
#define ZEND_FREE_ON_RETURN   (1<<0)
 
#define ZEND_FREE_SWITCH   (1<<1)
 
#define ZEND_SEND_BY_VAL   0u
 
#define ZEND_SEND_BY_REF   1u
 
#define ZEND_SEND_PREFER_REF   2u
 
#define ZEND_THROW_IS_EXPR   1u
 
#define ZEND_FCALL_MAY_HAVE_EXTRA_NAMED_PARAMS   1
 
#define _ZEND_SEND_MODE_SHIFT   _ZEND_TYPE_EXTRA_FLAGS_SHIFT
 
#define _ZEND_IS_VARIADIC_BIT   (1 << (_ZEND_TYPE_EXTRA_FLAGS_SHIFT + 2))
 
#define _ZEND_IS_PROMOTED_BIT   (1 << (_ZEND_TYPE_EXTRA_FLAGS_SHIFT + 3))
 
#define _ZEND_IS_TENTATIVE_BIT   (1 << (_ZEND_TYPE_EXTRA_FLAGS_SHIFT + 4))
 
#define ZEND_ARG_SEND_MODE(arg_info)
 
#define ZEND_ARG_IS_VARIADIC(arg_info)
 
#define ZEND_ARG_IS_PROMOTED(arg_info)
 
#define ZEND_ARG_TYPE_IS_TENTATIVE(arg_info)
 
#define ZEND_DIM_IS   (1 << 0) /* isset fetch needed for null coalesce. Set in zend_compile.c for ZEND_AST_DIM nested within ZEND_AST_COALESCE. */
 
#define ZEND_ENCAPS_VAR_DOLLAR_CURLY   (1 << 0)
 
#define ZEND_ENCAPS_VAR_DOLLAR_CURLY_VAR_VAR   (1 << 1)
 
#define IS_CONSTANT_CLASS   0x400 /* __CLASS__ in trait */
 
#define IS_CONSTANT_UNQUALIFIED_IN_NAMESPACE   0x800
 
#define ARG_MUST_BE_SENT_BY_REF(zf, arg_num)
 
#define ARG_SHOULD_BE_SENT_BY_REF(zf, arg_num)
 
#define ARG_MAY_BE_SENT_BY_REF(zf, arg_num)
 
#define MAX_ARG_FLAG_NUM   12
 
#define ZEND_SET_ARG_FLAG(zf, arg_num, mask)
 
#define ZEND_CHECK_ARG_FLAG(zf, arg_num, mask)
 
#define QUICK_ARG_MUST_BE_SENT_BY_REF(zf, arg_num)
 
#define QUICK_ARG_SHOULD_BE_SENT_BY_REF(zf, arg_num)
 
#define QUICK_ARG_MAY_BE_SENT_BY_REF(zf, arg_num)
 
#define ZEND_RETURN_VAL   0
 
#define ZEND_RETURN_REF   1
 
#define ZEND_BIND_VAL   0
 
#define ZEND_BIND_REF   1
 
#define ZEND_BIND_IMPLICIT   2
 
#define ZEND_BIND_EXPLICIT   4
 
#define ZEND_RETURNS_FUNCTION   (1<<0)
 
#define ZEND_RETURNS_VALUE   (1<<1)
 
#define ZEND_ARRAY_ELEMENT_REF   (1<<0)
 
#define ZEND_ARRAY_NOT_PACKED   (1<<1)
 
#define ZEND_ARRAY_SIZE_SHIFT   2
 
#define ZEND_PARENTHESIZED_CONDITIONAL   1
 
#define ZEND_PARENTHESIZED_STATIC_PROP   1
 
#define ZEND_SYMBOL_CLASS   (1<<0)
 
#define ZEND_SYMBOL_FUNCTION   (1<<1)
 
#define ZEND_SYMBOL_CONST   (1<<2)
 
#define ZEND_IS_INCREMENT(opcode)
 
#define ZEND_IS_BINARY_ASSIGN_OP_OPCODE(opcode)
 
#define ZEND_GOTO   253
 
#define ZEND_BRK   254
 
#define ZEND_CONT   255
 
#define ZEND_CLONE_FUNC_NAME   "__clone"
 
#define ZEND_CONSTRUCTOR_FUNC_NAME   "__construct"
 
#define ZEND_DESTRUCTOR_FUNC_NAME   "__destruct"
 
#define ZEND_GET_FUNC_NAME   "__get"
 
#define ZEND_SET_FUNC_NAME   "__set"
 
#define ZEND_UNSET_FUNC_NAME   "__unset"
 
#define ZEND_ISSET_FUNC_NAME   "__isset"
 
#define ZEND_CALL_FUNC_NAME   "__call"
 
#define ZEND_CALLSTATIC_FUNC_NAME   "__callstatic"
 
#define ZEND_TOSTRING_FUNC_NAME   "__tostring"
 
#define ZEND_INVOKE_FUNC_NAME   "__invoke"
 
#define ZEND_DEBUGINFO_FUNC_NAME   "__debuginfo"
 
#define ZEND_COMPILE_EXTENDED_STMT   (1<<0)
 
#define ZEND_COMPILE_EXTENDED_FCALL   (1<<1)
 
#define ZEND_COMPILE_EXTENDED_INFO   (ZEND_COMPILE_EXTENDED_STMT|ZEND_COMPILE_EXTENDED_FCALL)
 
#define ZEND_COMPILE_HANDLE_OP_ARRAY   (1<<2)
 
#define ZEND_COMPILE_IGNORE_INTERNAL_FUNCTIONS   (1<<3)
 
#define ZEND_COMPILE_IGNORE_INTERNAL_CLASSES   (1<<4)
 
#define ZEND_COMPILE_DELAYED_BINDING   (1<<5)
 
#define ZEND_COMPILE_NO_CONSTANT_SUBSTITUTION   (1<<6)
 
#define ZEND_COMPILE_NO_PERSISTENT_CONSTANT_SUBSTITUTION   (1<<8)
 
#define ZEND_COMPILE_IGNORE_USER_FUNCTIONS   (1<<9)
 
#define ZEND_COMPILE_GUARDS   (1<<10)
 
#define ZEND_COMPILE_NO_BUILTINS   (1<<11)
 
#define ZEND_COMPILE_WITH_FILE_CACHE   (1<<12)
 
#define ZEND_COMPILE_IGNORE_OTHER_FILES   (1<<13)
 
#define ZEND_COMPILE_WITHOUT_EXECUTION   (1<<14)
 
#define ZEND_COMPILE_PRELOAD   (1<<15)
 
#define ZEND_COMPILE_NO_JUMPTABLES   (1<<16)
 
#define ZEND_COMPILE_PRELOAD_IN_CHILD   (1<<17)
 
#define ZEND_COMPILE_IGNORE_OBSERVER   (1<<18)
 
#define ZEND_COMPILE_DEFAULT   ZEND_COMPILE_HANDLE_OP_ARRAY
 
#define ZEND_COMPILE_DEFAULT_FOR_EVAL   0
 

Typedefs

typedef struct _zend_op_array zend_op_array
 
typedef struct _zend_op zend_op
 
typedef union _znode_op znode_op
 
typedef struct _znode znode
 
typedef struct _zend_ast_znode zend_ast_znode
 
typedef struct _zend_declarables zend_declarables
 
typedef struct _zend_file_context zend_file_context
 
typedef union _zend_parser_stack_elem zend_parser_stack_elem
 
typedef int(* user_opcode_handler_t) (zend_execute_data *execute_data)
 
typedef struct _zend_brk_cont_element zend_brk_cont_element
 
typedef struct _zend_label zend_label
 
typedef struct _zend_try_catch_element zend_try_catch_element
 
typedef struct _zend_live_range zend_live_range
 
typedef struct _zend_property_info zend_property_info
 
typedef struct _zend_oparray_context zend_oparray_context
 
typedef struct _zend_class_constant zend_class_constant
 
typedef struct _zend_internal_arg_info zend_internal_arg_info
 
typedef struct _zend_arg_info zend_arg_info
 
typedef struct _zend_internal_function_info zend_internal_function_info
 
typedef void(ZEND_FASTCALLzif_handler) (INTERNAL_FUNCTION_PARAMETERS)
 
typedef struct _zend_internal_function zend_internal_function
 
typedef enum _zend_compile_position zend_compile_position
 
typedef zend_result(ZEND_FASTCALLunary_op_type) (zval *, zval *)
 
typedef zend_result(ZEND_FASTCALLbinary_op_type) (zval *, zval *, zval *)
 
typedef bool(* zend_needs_live_range_cb) (zend_op_array *op_array, zend_op *opline)
 
typedef bool(* zend_auto_global_callback) (zend_string *name)
 
typedef struct _zend_auto_global zend_auto_global
 

Enumerations

enum  _zend_compile_position { ZEND_COMPILE_POSITION_AT_SHEBANG = 0 , ZEND_COMPILE_POSITION_AT_OPEN_TAG , ZEND_COMPILE_POSITION_AFTER_OPEN_TAG }
 
enum  zend_modifier_target {
  ZEND_MODIFIER_TARGET_PROPERTY = 0 , ZEND_MODIFIER_TARGET_METHOD , ZEND_MODIFIER_TARGET_CONSTANT , ZEND_MODIFIER_TARGET_CPP ,
  ZEND_MODIFIER_TARGET_PROPERTY_HOOK
}
 

Functions

ZEND_API zend_ast *ZEND_FASTCALL zend_ast_create_znode (znode *node)
 
void zend_compile_top_stmt (zend_ast *ast)
 
void zend_const_expr_to_zval (zval *result, zend_ast **ast_ptr, bool allow_dynamic)
 
char * zend_visibility_string (uint32_t fn_flags)
 
zend_property_hook_kind zend_get_property_hook_kind_from_name (zend_string *name)
 
 ZEND_STATIC_ASSERT (ZEND_MM_ALIGNED_SIZE(sizeof(zval))==sizeof(zval), "zval must be aligned by ZEND_MM_ALIGNMENT")
 
void init_compiler (void)
 
void shutdown_compiler (void)
 
void zend_init_compiler_data_structures (void)
 
void zend_oparray_context_begin (zend_oparray_context *prev_context, zend_op_array *op_array)
 
void zend_oparray_context_end (zend_oparray_context *prev_context)
 
void zend_file_context_begin (zend_file_context *prev_context)
 
void zend_file_context_end (zend_file_context *prev_context)
 
ZEND_API int ZEND_FASTCALL lex_scan (zval *zendlval, zend_parser_stack_elem *elem)
 
void startup_scanner (void)
 
void shutdown_scanner (void)
 
ZEND_API zend_stringzend_set_compiled_filename (zend_string *new_compiled_filename)
 
ZEND_API void zend_restore_compiled_filename (zend_string *original_compiled_filename)
 
ZEND_API zend_stringzend_get_compiled_filename (void)
 
ZEND_API int zend_get_compiled_lineno (void)
 
ZEND_API size_t zend_get_scanned_file_offset (void)
 
ZEND_API zend_stringzend_get_compiled_variable_name (const zend_op_array *op_array, uint32_t var)
 
ZEND_API unary_op_type get_unary_op (int opcode)
 
ZEND_API binary_op_type get_binary_op (int opcode)
 
void zend_stop_lexing (void)
 
void zend_emit_final_return (bool return_one)
 
zend_astzend_ast_append_str (zend_ast *left, zend_ast *right)
 
zend_astzend_negate_num_string (zend_ast *ast)
 
uint32_t zend_add_class_modifier (uint32_t flags, uint32_t new_flag)
 
uint32_t zend_add_anonymous_class_modifier (uint32_t flags, uint32_t new_flag)
 
uint32_t zend_add_member_modifier (uint32_t flags, uint32_t new_flag, zend_modifier_target target)
 
uint32_t zend_modifier_token_to_flag (zend_modifier_target target, uint32_t flags)
 
uint32_t zend_modifier_list_to_flags (zend_modifier_target target, zend_ast *modifiers)
 
bool zend_handle_encoding_declaration (zend_ast *ast)
 
ZEND_API zend_class_entryzend_bind_class_in_slot (zval *class_table_slot, zval *lcname, zend_string *lc_parent_name)
 
ZEND_API zend_result do_bind_function (zend_function *func, zval *lcname)
 
ZEND_API zend_result do_bind_class (zval *lcname, zend_string *lc_parent_name)
 
void zend_resolve_goto_label (zend_op_array *op_array, zend_op *opline)
 
ZEND_API void function_add_ref (zend_function *function)
 
zend_stringzval_make_interned_string (zval *zv)
 
ZEND_API zend_op_arraycompile_file (zend_file_handle *file_handle, int type)
 
ZEND_API zend_op_arraycompile_string (zend_string *source_string, const char *filename, zend_compile_position position)
 
ZEND_API zend_op_arraycompile_filename (int type, zend_string *filename)
 
ZEND_API zend_astzend_compile_string_to_ast (zend_string *code, struct _zend_arena **ast_arena, zend_string *filename)
 
ZEND_API zend_result zend_execute_scripts (int type, zval *retval, int file_count,...)
 
ZEND_API zend_result zend_execute_script (int type, zval *retval, zend_file_handle *file_handle)
 
ZEND_API zend_result open_file_for_scanning (zend_file_handle *file_handle)
 
ZEND_API void init_op_array (zend_op_array *op_array, uint8_t type, int initial_ops_size)
 
ZEND_API void destroy_op_array (zend_op_array *op_array)
 
ZEND_API void zend_destroy_static_vars (zend_op_array *op_array)
 
ZEND_API void zend_destroy_file_handle (zend_file_handle *file_handle)
 
ZEND_API void zend_cleanup_mutable_class_data (zend_class_entry *ce)
 
ZEND_API void zend_cleanup_internal_class_data (zend_class_entry *ce)
 
ZEND_API void zend_type_release (zend_type type, bool persistent)
 
ZEND_API zend_stringzend_create_member_string (zend_string *class_name, zend_string *member_name)
 
ZEND_API ZEND_COLD void zend_user_exception_handler (void)
 
void zend_free_internal_arg_info (zend_internal_function *function)
 
ZEND_API void destroy_zend_function (zend_function *function)
 
ZEND_API void zend_function_dtor (zval *zv)
 
ZEND_API void destroy_zend_class (zval *zv)
 
void zend_class_add_ref (zval *zv)
 
ZEND_API zend_stringzend_mangle_property_name (const char *src1, size_t src1_length, const char *src2, size_t src2_length, bool internal)
 
ZEND_API zend_result zend_unmangle_property_name_ex (const zend_string *name, const char **class_name, const char **prop_name, size_t *prop_len)
 
ZEND_API void zend_recalc_live_ranges (zend_op_array *op_array, zend_needs_live_range_cb needs_live_range)
 
ZEND_API void pass_two (zend_op_array *op_array)
 
ZEND_API bool zend_is_compiling (void)
 
ZEND_API char * zend_make_compiled_string_description (const char *name)
 
ZEND_API void zend_initialize_class_data (zend_class_entry *ce, bool nullify_handlers)
 
uint32_t zend_get_class_fetch_type (const zend_string *name)
 
ZEND_API uint8_t zend_get_call_op (const zend_op *init_op, zend_function *fbc)
 
ZEND_API bool zend_is_smart_branch (const zend_op *opline)
 
ZEND_API zend_result zend_register_auto_global (zend_string *name, bool jit, zend_auto_global_callback auto_global_callback)
 
ZEND_API void zend_activate_auto_globals (void)
 
ZEND_API bool zend_is_auto_global (zend_string *name)
 
ZEND_API bool zend_is_auto_global_str (const char *name, size_t len)
 
ZEND_API size_t zend_dirname (char *path, size_t len)
 
ZEND_API void zend_set_function_arg_flags (zend_function *func)
 
int ZEND_FASTCALL zendlex (zend_parser_stack_elem *elem)
 
void zend_assert_valid_class_name (const zend_string *const_name, const char *type)
 
zend_stringzend_type_to_string_resolved (zend_type type, zend_class_entry *scope)
 
ZEND_API zend_stringzend_type_to_string (zend_type type)
 
ZEND_API bool zend_is_op_long_compatible (const zval *op)
 
ZEND_API bool zend_binary_op_produces_error (uint32_t opcode, const zval *op1, const zval *op2)
 
ZEND_API bool zend_unary_op_produces_error (uint32_t opcode, const zval *op)
 

Variables

ZEND_API zend_op_array *(* zend_compile_file )(zend_file_handle *file_handle, int type)
 
ZEND_API zend_op_array *(* zend_compile_string )(zend_string *source_string, const char *filename, zend_compile_position position)
 

Macro Definition Documentation

◆ _ZEND_IS_PROMOTED_BIT

#define _ZEND_IS_PROMOTED_BIT   (1 << (_ZEND_TYPE_EXTRA_FLAGS_SHIFT + 3))

Definition at line 1109 of file zend_compile.h.

◆ _ZEND_IS_TENTATIVE_BIT

#define _ZEND_IS_TENTATIVE_BIT   (1 << (_ZEND_TYPE_EXTRA_FLAGS_SHIFT + 4))

Definition at line 1110 of file zend_compile.h.

◆ _ZEND_IS_VARIADIC_BIT

#define _ZEND_IS_VARIADIC_BIT   (1 << (_ZEND_TYPE_EXTRA_FLAGS_SHIFT + 2))

Definition at line 1108 of file zend_compile.h.

◆ _ZEND_SEND_MODE_SHIFT

#define _ZEND_SEND_MODE_SHIFT   _ZEND_TYPE_EXTRA_FLAGS_SHIFT

Definition at line 1107 of file zend_compile.h.

◆ ARG_MAY_BE_SENT_BY_REF

#define ARG_MAY_BE_SENT_BY_REF ( zf,
arg_num )
Value:
zend_check_arg_send_type(zf, arg_num, ZEND_SEND_PREFER_REF)
#define ZEND_SEND_PREFER_REF
uint32_t arg_num

Definition at line 1150 of file zend_compile.h.

◆ ARG_MUST_BE_SENT_BY_REF

#define ARG_MUST_BE_SENT_BY_REF ( zf,
arg_num )
Value:
zend_check_arg_send_type(zf, arg_num, ZEND_SEND_BY_REF)
#define ZEND_SEND_BY_REF

Definition at line 1144 of file zend_compile.h.

◆ ARG_SHOULD_BE_SENT_BY_REF

#define ARG_SHOULD_BE_SENT_BY_REF ( zf,
arg_num )
Value:
zend_check_arg_send_type(zf, arg_num, ZEND_SEND_BY_REF|ZEND_SEND_PREFER_REF)

Definition at line 1147 of file zend_compile.h.

◆ BP_VAR_FUNC_ARG

#define BP_VAR_FUNC_ARG   4

Definition at line 1054 of file zend_compile.h.

◆ BP_VAR_IS

#define BP_VAR_IS   3

Definition at line 1053 of file zend_compile.h.

◆ BP_VAR_R

#define BP_VAR_R   0

Definition at line 1050 of file zend_compile.h.

◆ BP_VAR_RW

#define BP_VAR_RW   2

Definition at line 1052 of file zend_compile.h.

◆ BP_VAR_UNSET

#define BP_VAR_UNSET   5

Definition at line 1055 of file zend_compile.h.

◆ BP_VAR_W

#define BP_VAR_W   1

Definition at line 1051 of file zend_compile.h.

◆ CT_CONSTANT

#define CT_CONSTANT ( node)
Value:
CT_CONSTANT_EX(CG(active_op_array), (node).constant)
constant(string $name)
#define CT_CONSTANT_EX(op_array, num)
#define CG(v)

Definition at line 789 of file zend_compile.h.

◆ CT_CONSTANT_EX

#define CT_CONSTANT_EX ( op_array,
num )
Value:
((op_array)->literals + (num))

Definition at line 786 of file zend_compile.h.

◆ EX

#define EX ( element)
Value:
((execute_data)->element)
execute_data

Definition at line 700 of file zend_compile.h.

◆ EX_CALL_INFO

#define EX_CALL_INFO ( )
Value:
#define ZEND_CALL_INFO(call)

Definition at line 702 of file zend_compile.h.

◆ EX_CALL_KIND

#define EX_CALL_KIND ( )
Value:
#define ZEND_CALL_KIND(call)

Definition at line 703 of file zend_compile.h.

◆ EX_NUM_ARGS

#define EX_NUM_ARGS ( )
Value:
#define ZEND_CALL_NUM_ARGS(call)

Definition at line 704 of file zend_compile.h.

◆ EX_NUM_TO_VAR

#define EX_NUM_TO_VAR ( n)
Value:
((uint32_t)(((n) + ZEND_CALL_FRAME_SLOT) * sizeof(zval)))
zend_long n
Definition ffi.c:4979
struct _zval_struct zval
#define ZEND_CALL_FRAME_SLOT

Definition at line 729 of file zend_compile.h.

◆ EX_USES_STRICT_TYPES

#define EX_USES_STRICT_TYPES ( )
Value:
#define ZEND_CALL_USES_STRICT_TYPES(call)

Definition at line 709 of file zend_compile.h.

◆ EX_VAR

#define EX_VAR ( n)
Value:
#define ZEND_CALL_VAR(call, n)

Definition at line 725 of file zend_compile.h.

◆ EX_VAR_NUM

#define EX_VAR_NUM ( n)
Value:
#define ZEND_CALL_VAR_NUM(call, n)

Definition at line 726 of file zend_compile.h.

◆ EX_VAR_TO_NUM

#define EX_VAR_TO_NUM ( n)
Value:
((uint32_t)((n) / sizeof(zval) - ZEND_CALL_FRAME_SLOT))

Definition at line 728 of file zend_compile.h.

◆ INITIAL_OP_ARRAY_SIZE

#define INITIAL_OP_ARRAY_SIZE   64

Definition at line 923 of file zend_compile.h.

◆ INTERNAL_FUNCTION_PARAM_PASSTHRU

#define INTERNAL_FUNCTION_PARAM_PASSTHRU   execute_data, return_value

Definition at line 559 of file zend_compile.h.

◆ INTERNAL_FUNCTION_PARAMETERS

#define INTERNAL_FUNCTION_PARAMETERS   zend_execute_data *execute_data, zval *return_value

Definition at line 558 of file zend_compile.h.

◆ IS_CONST

#define IS_CONST   (1<<0)

Definition at line 834 of file zend_compile.h.

◆ IS_CONSTANT_CLASS

#define IS_CONSTANT_CLASS   0x400 /* __CLASS__ in trait */

Definition at line 1129 of file zend_compile.h.

◆ IS_CONSTANT_UNQUALIFIED_IN_NAMESPACE

#define IS_CONSTANT_UNQUALIFIED_IN_NAMESPACE   0x800

Definition at line 1130 of file zend_compile.h.

◆ IS_CV

#define IS_CV   (1<<3) /* Compiled variable */

Definition at line 837 of file zend_compile.h.

◆ IS_SMART_BRANCH_JMPNZ

#define IS_SMART_BRANCH_JMPNZ   (1<<5)

Definition at line 841 of file zend_compile.h.

◆ IS_SMART_BRANCH_JMPZ

#define IS_SMART_BRANCH_JMPZ   (1<<4)

Definition at line 840 of file zend_compile.h.

◆ IS_TMP_VAR

#define IS_TMP_VAR   (1<<1)

Definition at line 835 of file zend_compile.h.

◆ IS_UNUSED

#define IS_UNUSED   0 /* Unused operand */

Definition at line 833 of file zend_compile.h.

◆ IS_VAR

#define IS_VAR   (1<<2)

Definition at line 836 of file zend_compile.h.

◆ MAKE_NOP

#define MAKE_NOP ( opline)
Value:
do { \
(opline)->opcode = ZEND_NOP; \
SET_UNUSED((opline)->op1); \
SET_UNUSED((opline)->op2); \
SET_UNUSED((opline)->result); \
} while (0)
bool result
op2
op1
#define ZEND_NOP

Definition at line 40 of file zend_compile.h.

◆ MAX_ARG_FLAG_NUM

#define MAX_ARG_FLAG_NUM   12

Definition at line 1154 of file zend_compile.h.

◆ OBJ_PROP

#define OBJ_PROP ( obj,
offset )
Value:
((zval*)((char*)(obj) + offset))
zend_long offset

Definition at line 459 of file zend_compile.h.

◆ OBJ_PROP_NUM

#define OBJ_PROP_NUM ( obj,
num )
Value:
(&(obj)->properties_table[(num)])

Definition at line 461 of file zend_compile.h.

◆ OBJ_PROP_SLOT_TO_OFFSET

#define OBJ_PROP_SLOT_TO_OFFSET ( obj,
slot )
Value:
((uintptr_t)(slot) - (uintptr_t)(obj))

Definition at line 467 of file zend_compile.h.

◆ OBJ_PROP_TO_NUM

#define OBJ_PROP_TO_NUM ( offset)
Value:
(((offset) - OBJ_PROP_TO_OFFSET(0)) / sizeof(zval))
#define OBJ_PROP_TO_OFFSET(num)

Definition at line 465 of file zend_compile.h.

◆ OBJ_PROP_TO_OFFSET

#define OBJ_PROP_TO_OFFSET ( num)
Value:
((uint32_t)(XtOffsetOf(zend_object, properties_table) + sizeof(zval) * (num)))
#define XtOffsetOf(s_type, field)
struct _zend_object zend_object

Definition at line 463 of file zend_compile.h.

◆ OP_JMP_ADDR

#define OP_JMP_ADDR ( opline,
node )
Value:
ZEND_OFFSET_TO_OPLINE(opline, (node).jmp_offset)
#define ZEND_OFFSET_TO_OPLINE(base, offset)

Definition at line 766 of file zend_compile.h.

◆ QUICK_ARG_MAY_BE_SENT_BY_REF

#define QUICK_ARG_MAY_BE_SENT_BY_REF ( zf,
arg_num )
Value:
#define ZEND_CHECK_ARG_FLAG(zf, arg_num, mask)

Definition at line 1176 of file zend_compile.h.

◆ QUICK_ARG_MUST_BE_SENT_BY_REF

#define QUICK_ARG_MUST_BE_SENT_BY_REF ( zf,
arg_num )
Value:

Definition at line 1170 of file zend_compile.h.

◆ QUICK_ARG_SHOULD_BE_SENT_BY_REF

#define QUICK_ARG_SHOULD_BE_SENT_BY_REF ( zf,
arg_num )

◆ RESET_DOC_COMMENT

#define RESET_DOC_COMMENT ( )
Value:
do { \
if (CG(doc_comment)) { \
zend_string_release_ex(CG(doc_comment), 0); \
CG(doc_comment) = NULL; \
} \
} while (0)
#define NULL
Definition gdcache.h:45

Definition at line 47 of file zend_compile.h.

◆ RT_CONSTANT

#define RT_CONSTANT ( opline,
node )
Value:
((zval*)(((char*)(opline)) + (int32_t)(node).constant))

Definition at line 810 of file zend_compile.h.

◆ RUN_TIME_CACHE

#define RUN_TIME_CACHE ( op_array)
Value:
ZEND_MAP_PTR_GET((op_array)->run_time_cache)
#define ZEND_MAP_PTR_GET(ptr)

Definition at line 827 of file zend_compile.h.

◆ SET_UNUSED

#define SET_UNUSED ( op)
Value:
do { \
op ## _type = IS_UNUSED; \
op.num = (uint32_t) -1; \
} while (0)
#define IS_UNUSED

Definition at line 35 of file zend_compile.h.

◆ ZEND_ACC_ABSTRACT

#define ZEND_ACC_ABSTRACT   (1 << 6) /* X | X | X | */

Definition at line 232 of file zend_compile.h.

◆ ZEND_ACC_ALLOW_DYNAMIC_PROPERTIES

#define ZEND_ACC_ALLOW_DYNAMIC_PROPERTIES   (1 << 15) /* X | | | */

Definition at line 301 of file zend_compile.h.

◆ ZEND_ACC_ANON_CLASS

#define ZEND_ACC_ANON_CLASS   (1 << 2) /* X | | | */

Definition at line 276 of file zend_compile.h.

◆ ZEND_ACC_ARENA_ALLOCATED

#define ZEND_ACC_ARENA_ALLOCATED   (1 << 25) /* | X | | */

Definition at line 384 of file zend_compile.h.

◆ ZEND_ACC_CACHEABLE

#define ZEND_ACC_CACHEABLE   (1 << 23) /* X | | | */

Definition at line 324 of file zend_compile.h.

◆ ZEND_ACC_CACHED

#define ZEND_ACC_CACHED   (1 << 22) /* X | | | */

Definition at line 321 of file zend_compile.h.

◆ ZEND_ACC_CALL_VIA_HANDLER

#define ZEND_ACC_CALL_VIA_HANDLER   ZEND_ACC_CALL_VIA_TRAMPOLINE

Definition at line 418 of file zend_compile.h.

◆ ZEND_ACC_CALL_VIA_TRAMPOLINE

#define ZEND_ACC_CALL_VIA_TRAMPOLINE   (1 << 18) /* | X | | */

Definition at line 363 of file zend_compile.h.

◆ ZEND_ACC_CHANGED

#define ZEND_ACC_CHANGED   (1 << 3) /* | X | X | */

Definition at line 223 of file zend_compile.h.

◆ ZEND_ACC_CLOSURE

#define ZEND_ACC_CLOSURE   (1 << 22) /* | X | | */

Definition at line 375 of file zend_compile.h.

◆ ZEND_ACC_COMPILE_TIME_EVAL

#define ZEND_ACC_COMPILE_TIME_EVAL   (1 << 27) /* | X | | */

Definition at line 393 of file zend_compile.h.

◆ ZEND_ACC_CONSTANTS_UPDATED

#define ZEND_ACC_CONSTANTS_UPDATED   (1 << 12) /* X | | | */

Definition at line 291 of file zend_compile.h.

◆ ZEND_ACC_CTOR

#define ZEND_ACC_CTOR   (1 << 21) /* | X | | */

Definition at line 372 of file zend_compile.h.

◆ ZEND_ACC_DEPRECATED

#define ZEND_ACC_DEPRECATED   (1 << 11) /* | X | | X */

Definition at line 340 of file zend_compile.h.

◆ ZEND_ACC_DONE_PASS_TWO

#define ZEND_ACC_DONE_PASS_TWO   (1 << 25) /* | X | | */

Definition at line 381 of file zend_compile.h.

◆ ZEND_ACC_EARLY_BINDING

#define ZEND_ACC_EARLY_BINDING   (1 << 16) /* | X | | */

Definition at line 356 of file zend_compile.h.

◆ ZEND_ACC_ENUM

#define ZEND_ACC_ENUM   (1 << 28) /* X | | | */

Definition at line 277 of file zend_compile.h.

◆ ZEND_ACC_EXPLICIT_ABSTRACT_CLASS

#define ZEND_ACC_EXPLICIT_ABSTRACT_CLASS   (1 << 6) /* X | | | */

Definition at line 233 of file zend_compile.h.

◆ ZEND_ACC_FAKE_CLOSURE

#define ZEND_ACC_FAKE_CLOSURE   (1 << 23) /* | X | | */ /* Same as ZEND_CALL_FAKE_CLOSURE */

Definition at line 376 of file zend_compile.h.

◆ ZEND_ACC_FILE_CACHED

#define ZEND_ACC_FILE_CACHED   (1 << 27) /* X | | | */

Definition at line 331 of file zend_compile.h.

◆ ZEND_ACC_FINAL

#define ZEND_ACC_FINAL   (1 << 5) /* X | X | X | X */

Definition at line 229 of file zend_compile.h.

◆ ZEND_ACC_GENERATOR

#define ZEND_ACC_GENERATOR   (1 << 24) /* | X | | */

Definition at line 378 of file zend_compile.h.

◆ ZEND_ACC_HAS_AST_CONSTANTS

#define ZEND_ACC_HAS_AST_CONSTANTS   (1 << 24) /* X | | | */

Definition at line 326 of file zend_compile.h.

◆ ZEND_ACC_HAS_AST_PROPERTIES

#define ZEND_ACC_HAS_AST_PROPERTIES   (1 << 25) /* X | | | */

Definition at line 327 of file zend_compile.h.

◆ ZEND_ACC_HAS_AST_STATICS

#define ZEND_ACC_HAS_AST_STATICS   (1 << 26) /* X | | | */

Definition at line 328 of file zend_compile.h.

◆ ZEND_ACC_HAS_FINALLY_BLOCK

#define ZEND_ACC_HAS_FINALLY_BLOCK   (1 << 15) /* | X | | */

Definition at line 352 of file zend_compile.h.

◆ ZEND_ACC_HAS_READONLY_PROPS

#define ZEND_ACC_HAS_READONLY_PROPS   (1 << 21) /* X | | | */

Definition at line 318 of file zend_compile.h.

◆ ZEND_ACC_HAS_RETURN_TYPE

#define ZEND_ACC_HAS_RETURN_TYPE   (1 << 13) /* | X | | */

Definition at line 346 of file zend_compile.h.

◆ ZEND_ACC_HAS_TYPE_HINTS

#define ZEND_ACC_HAS_TYPE_HINTS   (1 << 8) /* X | X | | */

Definition at line 243 of file zend_compile.h.

◆ ZEND_ACC_HEAP_RT_CACHE

#define ZEND_ACC_HEAP_RT_CACHE   (1 << 26) /* | X | | */

Definition at line 387 of file zend_compile.h.

◆ ZEND_ACC_IMMUTABLE

#define ZEND_ACC_IMMUTABLE   (1 << 7) /* X | X | | */

Definition at line 240 of file zend_compile.h.

◆ ZEND_ACC_IMPLICIT_ABSTRACT_CLASS

#define ZEND_ACC_IMPLICIT_ABSTRACT_CLASS   (1 << 4) /* X | | | */

Definition at line 284 of file zend_compile.h.

◆ ZEND_ACC_INTERFACE

#define ZEND_ACC_INTERFACE   (1 << 0) /* X | | | */

Definition at line 274 of file zend_compile.h.

◆ ZEND_ACC_LINKED

#define ZEND_ACC_LINKED   (1 << 3) /* X | | | */

Definition at line 280 of file zend_compile.h.

◆ ZEND_ACC_NEARLY_LINKED

#define ZEND_ACC_NEARLY_LINKED   (1 << 20) /* X | | | */

Definition at line 316 of file zend_compile.h.

◆ ZEND_ACC_NEVER_CACHE

#define ZEND_ACC_NEVER_CACHE   (1 << 19) /* | X | | */

Definition at line 366 of file zend_compile.h.

◆ ZEND_ACC_NO_DYNAMIC_PROPERTIES

#define ZEND_ACC_NO_DYNAMIC_PROPERTIES   (1 << 13) /* X | | | */

Definition at line 294 of file zend_compile.h.

◆ ZEND_ACC_NOT_SERIALIZABLE

#define ZEND_ACC_NOT_SERIALIZABLE   (1 << 29) /* X | | | */

Definition at line 334 of file zend_compile.h.

◆ ZEND_ACC_OVERRIDE

#define ZEND_ACC_OVERRIDE   (1 << 28) /* | X | | */

Definition at line 396 of file zend_compile.h.

◆ ZEND_ACC_PPP_MASK

Definition at line 401 of file zend_compile.h.

◆ ZEND_ACC_PPP_SET_MASK

Definition at line 402 of file zend_compile.h.

◆ ZEND_ACC_PRELOADED

#define ZEND_ACC_PRELOADED   (1 << 10) /* X | X | | */

Definition at line 249 of file zend_compile.h.

◆ ZEND_ACC_PRIVATE

#define ZEND_ACC_PRIVATE   (1 << 2) /* | X | X | X */

Definition at line 220 of file zend_compile.h.

◆ ZEND_ACC_PRIVATE_SET

#define ZEND_ACC_PRIVATE_SET   (1 << 12) /* | | X | */

Definition at line 268 of file zend_compile.h.

◆ ZEND_ACC_PROMOTED

#define ZEND_ACC_PROMOTED   (1 << 8) /* | | X | */

Definition at line 260 of file zend_compile.h.

◆ ZEND_ACC_PROTECTED

#define ZEND_ACC_PROTECTED   (1 << 1) /* | X | X | X */

Definition at line 219 of file zend_compile.h.

◆ ZEND_ACC_PROTECTED_SET

#define ZEND_ACC_PROTECTED_SET   (1 << 11) /* | | X | */

Definition at line 267 of file zend_compile.h.

◆ ZEND_ACC_PUBLIC

#define ZEND_ACC_PUBLIC   (1 << 0) /* | X | X | X */

Definition at line 218 of file zend_compile.h.

◆ ZEND_ACC_PUBLIC_SET

#define ZEND_ACC_PUBLIC_SET   (1 << 10) /* | | X | */

Definition at line 266 of file zend_compile.h.

◆ ZEND_ACC_READONLY

#define ZEND_ACC_READONLY   (1 << 7) /* | | X | */

Definition at line 236 of file zend_compile.h.

◆ ZEND_ACC_READONLY_CLASS

#define ZEND_ACC_READONLY_CLASS   (1 << 16) /* X | | | */

Definition at line 304 of file zend_compile.h.

◆ ZEND_ACC_RESOLVED_INTERFACES

#define ZEND_ACC_RESOLVED_INTERFACES   (1 << 18) /* X | | | */

Definition at line 310 of file zend_compile.h.

◆ ZEND_ACC_RESOLVED_PARENT

#define ZEND_ACC_RESOLVED_PARENT   (1 << 17) /* X | | | */

Definition at line 307 of file zend_compile.h.

◆ ZEND_ACC_RETURN_REFERENCE

#define ZEND_ACC_RETURN_REFERENCE   (1 << 12) /* | X | | */

Definition at line 343 of file zend_compile.h.

◆ ZEND_ACC_STATIC

#define ZEND_ACC_STATIC   (1 << 4) /* | X | X | */

Definition at line 226 of file zend_compile.h.

◆ ZEND_ACC_STRICT_TYPES

#define ZEND_ACC_STRICT_TYPES   (1U << 31) /* | X | | */

Definition at line 399 of file zend_compile.h.

◆ ZEND_ACC_TOP_LEVEL

#define ZEND_ACC_TOP_LEVEL   (1 << 9) /* X | X | | */

Definition at line 246 of file zend_compile.h.

◆ ZEND_ACC_TRAIT

#define ZEND_ACC_TRAIT   (1 << 1) /* X | | | */

Definition at line 275 of file zend_compile.h.

◆ ZEND_ACC_TRAIT_CLONE

#define ZEND_ACC_TRAIT_CLONE   (1 << 20) /* | X | | */

Definition at line 369 of file zend_compile.h.

◆ ZEND_ACC_UNINSTANTIABLE

#define ZEND_ACC_UNINSTANTIABLE
Value:
( \
)
#define ZEND_ACC_ENUM
#define ZEND_ACC_IMPLICIT_ABSTRACT_CLASS
#define ZEND_ACC_EXPLICIT_ABSTRACT_CLASS
#define ZEND_ACC_INTERFACE
#define ZEND_ACC_TRAIT

Definition at line 420 of file zend_compile.h.

◆ ZEND_ACC_UNRESOLVED_VARIANCE

#define ZEND_ACC_UNRESOLVED_VARIANCE   (1 << 19) /* X | | | */

Definition at line 313 of file zend_compile.h.

◆ ZEND_ACC_USE_GUARDS

#define ZEND_ACC_USE_GUARDS   (1 << 11) /* X | | | */

Definition at line 288 of file zend_compile.h.

◆ ZEND_ACC_USER_ARG_INFO

#define ZEND_ACC_USER_ARG_INFO   (1 << 26) /* | X | | */

Definition at line 390 of file zend_compile.h.

◆ ZEND_ACC_USES_THIS

#define ZEND_ACC_USES_THIS   (1 << 17) /* | X | | */

Definition at line 359 of file zend_compile.h.

◆ ZEND_ACC_VARIADIC

#define ZEND_ACC_VARIADIC   (1 << 14) /* | X | | */

Definition at line 349 of file zend_compile.h.

◆ ZEND_ACC_VIRTUAL

#define ZEND_ACC_VIRTUAL   (1 << 9) /* | | X | */

Definition at line 263 of file zend_compile.h.

◆ ZEND_ADD_CALL_FLAG

#define ZEND_ADD_CALL_FLAG ( call,
flag )
Value:
do { \
ZEND_ADD_CALL_FLAG_EX(Z_TYPE_INFO((call)->This), flag); \
} while (0)
#define Z_TYPE_INFO(zval)
Definition zend_types.h:668
zend_execute_data * call

Definition at line 673 of file zend_compile.h.

◆ ZEND_ADD_CALL_FLAG_EX

#define ZEND_ADD_CALL_FLAG_EX ( call_info,
flag )
Value:
do { \
call_info |= (flag); \
} while (0)
uint32_t call_info

Definition at line 665 of file zend_compile.h.

◆ ZEND_ARG_IS_PROMOTED

#define ZEND_ARG_IS_PROMOTED ( arg_info)
Value:
zend_ffi_type * type
Definition ffi.c:3812
#define _ZEND_IS_PROMOTED_BIT
#define ZEND_TYPE_FULL_MASK(t)
Definition zend_types.h:254

Definition at line 1115 of file zend_compile.h.

◆ ZEND_ARG_IS_VARIADIC

#define ZEND_ARG_IS_VARIADIC ( arg_info)
Value:
#define _ZEND_IS_VARIADIC_BIT

Definition at line 1113 of file zend_compile.h.

◆ ZEND_ARG_SEND_MODE

#define ZEND_ARG_SEND_MODE ( arg_info)
Value:
#define _ZEND_SEND_MODE_SHIFT

Definition at line 1111 of file zend_compile.h.

◆ ZEND_ARG_TYPE_IS_TENTATIVE

#define ZEND_ARG_TYPE_IS_TENTATIVE ( arg_info)
Value:
#define _ZEND_IS_TENTATIVE_BIT

Definition at line 1117 of file zend_compile.h.

◆ ZEND_ARG_USES_STRICT_TYPES

#define ZEND_ARG_USES_STRICT_TYPES ( )
Value:
(EG(current_execute_data)->prev_execute_data && \
EG(current_execute_data)->prev_execute_data->func && \
ZEND_CALL_USES_STRICT_TYPES(EG(current_execute_data)->prev_execute_data))
#define EG(v)
call prev_execute_data

Definition at line 712 of file zend_compile.h.

◆ ZEND_ARRAY_ELEMENT_REF

#define ZEND_ARRAY_ELEMENT_REF   (1<<0)

Definition at line 1190 of file zend_compile.h.

◆ ZEND_ARRAY_NOT_PACKED

#define ZEND_ARRAY_NOT_PACKED   (1<<1)

Definition at line 1191 of file zend_compile.h.

◆ ZEND_ARRAY_SIZE_SHIFT

#define ZEND_ARRAY_SIZE_SHIFT   2

Definition at line 1192 of file zend_compile.h.

◆ ZEND_ARRAY_SYNTAX_LIST

#define ZEND_ARRAY_SYNTAX_LIST   1 /* list() */

Definition at line 1045 of file zend_compile.h.

◆ ZEND_ARRAY_SYNTAX_LONG

#define ZEND_ARRAY_SYNTAX_LONG   2 /* array() */

Definition at line 1046 of file zend_compile.h.

◆ ZEND_ARRAY_SYNTAX_SHORT

#define ZEND_ARRAY_SYNTAX_SHORT   3 /* [] */

Definition at line 1047 of file zend_compile.h.

◆ ZEND_BIND_EXPLICIT

#define ZEND_BIND_EXPLICIT   4

Definition at line 1185 of file zend_compile.h.

◆ ZEND_BIND_IMPLICIT

#define ZEND_BIND_IMPLICIT   2

Definition at line 1184 of file zend_compile.h.

◆ ZEND_BIND_REF

#define ZEND_BIND_REF   1

Definition at line 1183 of file zend_compile.h.

◆ ZEND_BIND_VAL

#define ZEND_BIND_VAL   0

Definition at line 1182 of file zend_compile.h.

◆ ZEND_BRK

#define ZEND_BRK   254

Definition at line 1213 of file zend_compile.h.

◆ ZEND_CALL_ALLOCATED

#define ZEND_CALL_ALLOCATED   (1 << 18)

Definition at line 634 of file zend_compile.h.

◆ ZEND_CALL_ARG

#define ZEND_CALL_ARG ( call,
n )
Value:
ZEND_CALL_VAR_NUM(call, ((int)(n)) - 1)

Definition at line 697 of file zend_compile.h.

◆ ZEND_CALL_CLOSURE

#define ZEND_CALL_CLOSURE   (1 << 22)

Definition at line 638 of file zend_compile.h.

◆ ZEND_CALL_CODE

#define ZEND_CALL_CODE   (1 << 16)

Definition at line 631 of file zend_compile.h.

◆ ZEND_CALL_DYNAMIC

#define ZEND_CALL_DYNAMIC   (1 << 25)

Definition at line 641 of file zend_compile.h.

◆ ZEND_CALL_FAKE_CLOSURE

#define ZEND_CALL_FAKE_CLOSURE   (1 << 23) /* Same as ZEND_ACC_FAKE_CLOSURE */

Definition at line 639 of file zend_compile.h.

◆ ZEND_CALL_FRAME_SLOT

#define ZEND_CALL_FRAME_SLOT    ((int)((sizeof(zend_execute_data) + sizeof(zval) - 1) / sizeof(zval)))

Definition at line 688 of file zend_compile.h.

◆ ZEND_CALL_FREE_EXTRA_ARGS

#define ZEND_CALL_FREE_EXTRA_ARGS   (1 << 19)

Definition at line 635 of file zend_compile.h.

◆ ZEND_CALL_FUNC_NAME

#define ZEND_CALL_FUNC_NAME   "__call"

Definition at line 1226 of file zend_compile.h.

◆ ZEND_CALL_FUNCTION

#define ZEND_CALL_FUNCTION   (0 << 16)

Definition at line 630 of file zend_compile.h.

◆ ZEND_CALL_GENERATOR

#define ZEND_CALL_GENERATOR   (1 << 24)

Definition at line 640 of file zend_compile.h.

◆ ZEND_CALL_HAS_EXTRA_NAMED_PARAMS

#define ZEND_CALL_HAS_EXTRA_NAMED_PARAMS   (1 << 27)

Definition at line 643 of file zend_compile.h.

◆ ZEND_CALL_HAS_SYMBOL_TABLE

#define ZEND_CALL_HAS_SYMBOL_TABLE   (1 << 20)

Definition at line 636 of file zend_compile.h.

◆ ZEND_CALL_HAS_THIS

#define ZEND_CALL_HAS_THIS   IS_OBJECT_EX

Definition at line 627 of file zend_compile.h.

◆ ZEND_CALL_INFO

#define ZEND_CALL_INFO ( call)
Value:
Z_TYPE_INFO((call)->This)

Definition at line 656 of file zend_compile.h.

◆ ZEND_CALL_JIT_RESERVED

#define ZEND_CALL_JIT_RESERVED   (1 << 29) /* reserved for tracing JIT */

Definition at line 647 of file zend_compile.h.

◆ ZEND_CALL_KIND

#define ZEND_CALL_KIND ( call)
Value:
#define ZEND_CALL_KIND_EX(call_info)

Definition at line 662 of file zend_compile.h.

◆ ZEND_CALL_KIND_EX

#define ZEND_CALL_KIND_EX ( call_info)
Value:
#define ZEND_CALL_TOP
#define ZEND_CALL_CODE

Definition at line 659 of file zend_compile.h.

◆ ZEND_CALL_MAY_HAVE_UNDEF

#define ZEND_CALL_MAY_HAVE_UNDEF   (1 << 26)

Definition at line 642 of file zend_compile.h.

◆ ZEND_CALL_NEEDS_REATTACH

#define ZEND_CALL_NEEDS_REATTACH   (1 << 30)

Definition at line 648 of file zend_compile.h.

◆ ZEND_CALL_NESTED

#define ZEND_CALL_NESTED   (0 << 17)

Definition at line 632 of file zend_compile.h.

◆ ZEND_CALL_NESTED_CODE

#define ZEND_CALL_NESTED_CODE   (ZEND_CALL_CODE | ZEND_CALL_NESTED)

Definition at line 652 of file zend_compile.h.

◆ ZEND_CALL_NESTED_FUNCTION

#define ZEND_CALL_NESTED_FUNCTION   (ZEND_CALL_FUNCTION | ZEND_CALL_NESTED)

Definition at line 651 of file zend_compile.h.

◆ ZEND_CALL_NUM_ARGS

#define ZEND_CALL_NUM_ARGS ( call)
Value:
(call)->This.u2.num_args

Definition at line 681 of file zend_compile.h.

◆ ZEND_CALL_OBSERVED

#define ZEND_CALL_OBSERVED   (1 << 28) /* "fcall_begin" observer handler may set this flag */

Definition at line 644 of file zend_compile.h.

◆ ZEND_CALL_RELEASE_THIS

#define ZEND_CALL_RELEASE_THIS   (1 << 21)

Definition at line 637 of file zend_compile.h.

◆ ZEND_CALL_SEND_ARG_BY_REF

#define ZEND_CALL_SEND_ARG_BY_REF   (1u << 31)

Definition at line 649 of file zend_compile.h.

◆ ZEND_CALL_TOP

#define ZEND_CALL_TOP   (1 << 17)

Definition at line 633 of file zend_compile.h.

◆ ZEND_CALL_TOP_CODE

#define ZEND_CALL_TOP_CODE   (ZEND_CALL_CODE | ZEND_CALL_TOP)

Definition at line 654 of file zend_compile.h.

◆ ZEND_CALL_TOP_FUNCTION

#define ZEND_CALL_TOP_FUNCTION   (ZEND_CALL_TOP | ZEND_CALL_FUNCTION)

Definition at line 653 of file zend_compile.h.

◆ ZEND_CALL_USES_STRICT_TYPES

#define ZEND_CALL_USES_STRICT_TYPES ( call)
Value:
(((call)->func->common.fn_flags & ZEND_ACC_STRICT_TYPES) != 0)
#define ZEND_ACC_STRICT_TYPES

Definition at line 706 of file zend_compile.h.

◆ ZEND_CALL_VAR

#define ZEND_CALL_VAR ( call,
n )
Value:
((zval*)(((char*)(call)) + ((int)(n))))

Definition at line 691 of file zend_compile.h.

◆ ZEND_CALL_VAR_NUM

#define ZEND_CALL_VAR_NUM ( call,
n )
Value:
(((zval*)(call)) + (ZEND_CALL_FRAME_SLOT + ((int)(n))))

Definition at line 694 of file zend_compile.h.

◆ ZEND_CALLSTATIC_FUNC_NAME

#define ZEND_CALLSTATIC_FUNC_NAME   "__callstatic"

Definition at line 1227 of file zend_compile.h.

◆ ZEND_CHECK_ARG_FLAG

#define ZEND_CHECK_ARG_FLAG ( zf,
arg_num,
mask )
Value:
(((zf)->quick_arg_flags >> (((arg_num) + 3) * 2)) & (mask))

Definition at line 1166 of file zend_compile.h.

◆ ZEND_CLASS_CONST_FLAGS

#define ZEND_CLASS_CONST_FLAGS ( c)
Value:
#define Z_CONSTANT_FLAGS(zval)
Definition zend_types.h:692
value

Definition at line 478 of file zend_compile.h.

◆ ZEND_CLASS_CONST_IS_CASE

#define ZEND_CLASS_CONST_IS_CASE   (1 << 6) /* | | | X */

Definition at line 254 of file zend_compile.h.

◆ ZEND_CLASS_DTOR

#define ZEND_CLASS_DTOR   destroy_zend_class

Definition at line 975 of file zend_compile.h.

◆ ZEND_CLONE_FUNC_NAME

#define ZEND_CLONE_FUNC_NAME   "__clone"

Definition at line 1219 of file zend_compile.h.

◆ ZEND_COMPILE_DEFAULT

#define ZEND_COMPILE_DEFAULT   ZEND_COMPILE_HANDLE_OP_ARRAY

Definition at line 1291 of file zend_compile.h.

◆ ZEND_COMPILE_DEFAULT_FOR_EVAL

#define ZEND_COMPILE_DEFAULT_FOR_EVAL   0

Definition at line 1294 of file zend_compile.h.

◆ ZEND_COMPILE_DELAYED_BINDING

#define ZEND_COMPILE_DELAYED_BINDING   (1<<5)

Definition at line 1252 of file zend_compile.h.

◆ ZEND_COMPILE_EXTENDED_FCALL

#define ZEND_COMPILE_EXTENDED_FCALL   (1<<1)

Definition at line 1237 of file zend_compile.h.

◆ ZEND_COMPILE_EXTENDED_INFO

Definition at line 1238 of file zend_compile.h.

◆ ZEND_COMPILE_EXTENDED_STMT

#define ZEND_COMPILE_EXTENDED_STMT   (1<<0)

Definition at line 1236 of file zend_compile.h.

◆ ZEND_COMPILE_GUARDS

#define ZEND_COMPILE_GUARDS   (1<<10)

Definition at line 1264 of file zend_compile.h.

◆ ZEND_COMPILE_HANDLE_OP_ARRAY

#define ZEND_COMPILE_HANDLE_OP_ARRAY   (1<<2)

Definition at line 1241 of file zend_compile.h.

◆ ZEND_COMPILE_IGNORE_INTERNAL_CLASSES

#define ZEND_COMPILE_IGNORE_INTERNAL_CLASSES   (1<<4)

Definition at line 1249 of file zend_compile.h.

◆ ZEND_COMPILE_IGNORE_INTERNAL_FUNCTIONS

#define ZEND_COMPILE_IGNORE_INTERNAL_FUNCTIONS   (1<<3)

Definition at line 1244 of file zend_compile.h.

◆ ZEND_COMPILE_IGNORE_OBSERVER

#define ZEND_COMPILE_IGNORE_OBSERVER   (1<<18)

Definition at line 1288 of file zend_compile.h.

◆ ZEND_COMPILE_IGNORE_OTHER_FILES

#define ZEND_COMPILE_IGNORE_OTHER_FILES   (1<<13)

Definition at line 1273 of file zend_compile.h.

◆ ZEND_COMPILE_IGNORE_USER_FUNCTIONS

#define ZEND_COMPILE_IGNORE_USER_FUNCTIONS   (1<<9)

Definition at line 1261 of file zend_compile.h.

◆ ZEND_COMPILE_NO_BUILTINS

#define ZEND_COMPILE_NO_BUILTINS   (1<<11)

Definition at line 1267 of file zend_compile.h.

◆ ZEND_COMPILE_NO_CONSTANT_SUBSTITUTION

#define ZEND_COMPILE_NO_CONSTANT_SUBSTITUTION   (1<<6)

Definition at line 1255 of file zend_compile.h.

◆ ZEND_COMPILE_NO_JUMPTABLES

#define ZEND_COMPILE_NO_JUMPTABLES   (1<<16)

Definition at line 1282 of file zend_compile.h.

◆ ZEND_COMPILE_NO_PERSISTENT_CONSTANT_SUBSTITUTION

#define ZEND_COMPILE_NO_PERSISTENT_CONSTANT_SUBSTITUTION   (1<<8)

Definition at line 1258 of file zend_compile.h.

◆ ZEND_COMPILE_PRELOAD

#define ZEND_COMPILE_PRELOAD   (1<<15)

Definition at line 1279 of file zend_compile.h.

◆ ZEND_COMPILE_PRELOAD_IN_CHILD

#define ZEND_COMPILE_PRELOAD_IN_CHILD   (1<<17)

Definition at line 1285 of file zend_compile.h.

◆ ZEND_COMPILE_WITH_FILE_CACHE

#define ZEND_COMPILE_WITH_FILE_CACHE   (1<<12)

Definition at line 1270 of file zend_compile.h.

◆ ZEND_COMPILE_WITHOUT_EXECUTION

#define ZEND_COMPILE_WITHOUT_EXECUTION   (1<<14)

Definition at line 1276 of file zend_compile.h.

◆ ZEND_CONST_EXPR_NEW_FETCH_TYPE_SHIFT

#define ZEND_CONST_EXPR_NEW_FETCH_TYPE_SHIFT   2

Definition at line 1041 of file zend_compile.h.

◆ ZEND_CONSTRUCTOR_FUNC_NAME

#define ZEND_CONSTRUCTOR_FUNC_NAME   "__construct"

Definition at line 1220 of file zend_compile.h.

◆ ZEND_CONT

#define ZEND_CONT   255

Definition at line 1214 of file zend_compile.h.

◆ ZEND_DEBUGINFO_FUNC_NAME

#define ZEND_DEBUGINFO_FUNC_NAME   "__debuginfo"

Definition at line 1230 of file zend_compile.h.

◆ ZEND_DEL_CALL_FLAG

#define ZEND_DEL_CALL_FLAG ( call,
flag )
Value:
do { \
ZEND_DEL_CALL_FLAG_EX(Z_TYPE_INFO((call)->This), flag); \
} while (0)

Definition at line 677 of file zend_compile.h.

◆ ZEND_DEL_CALL_FLAG_EX

#define ZEND_DEL_CALL_FLAG_EX ( call_info,
flag )
Value:
do { \
call_info &= ~(flag); \
} while (0)

Definition at line 669 of file zend_compile.h.

◆ ZEND_DESTRUCTOR_FUNC_NAME

#define ZEND_DESTRUCTOR_FUNC_NAME   "__destruct"

Definition at line 1221 of file zend_compile.h.

◆ ZEND_DIM_IS

#define ZEND_DIM_IS   (1 << 0) /* isset fetch needed for null coalesce. Set in zend_compile.c for ZEND_AST_DIM nested within ZEND_AST_COALESCE. */

Definition at line 1120 of file zend_compile.h.

◆ ZEND_ENCAPS_VAR_DOLLAR_CURLY

#define ZEND_ENCAPS_VAR_DOLLAR_CURLY   (1 << 0)

Definition at line 1125 of file zend_compile.h.

◆ ZEND_ENCAPS_VAR_DOLLAR_CURLY_VAR_VAR

#define ZEND_ENCAPS_VAR_DOLLAR_CURLY_VAR_VAR   (1 << 1)

Definition at line 1126 of file zend_compile.h.

◆ ZEND_EVAL

#define ZEND_EVAL   (1<<0)

Definition at line 1066 of file zend_compile.h.

◆ ZEND_EVAL_CODE

#define ZEND_EVAL_CODE   4

Definition at line 1059 of file zend_compile.h.

◆ ZEND_EXTRA_VALUE

#define ZEND_EXTRA_VALUE   1

Definition at line 843 of file zend_compile.h.

◆ ZEND_FCALL_MAY_HAVE_EXTRA_NAMED_PARAMS

#define ZEND_FCALL_MAY_HAVE_EXTRA_NAMED_PARAMS   1

Definition at line 1104 of file zend_compile.h.

◆ ZEND_FETCH_CLASS_ALLOW_NEARLY_LINKED

#define ZEND_FETCH_CLASS_ALLOW_NEARLY_LINKED   0x0800

Definition at line 1030 of file zend_compile.h.

◆ ZEND_FETCH_CLASS_ALLOW_UNLINKED

#define ZEND_FETCH_CLASS_ALLOW_UNLINKED   0x0400

Definition at line 1029 of file zend_compile.h.

◆ ZEND_FETCH_CLASS_AUTO

#define ZEND_FETCH_CLASS_AUTO   4

Definition at line 1022 of file zend_compile.h.

◆ ZEND_FETCH_CLASS_DEFAULT

#define ZEND_FETCH_CLASS_DEFAULT   0

Definition at line 1018 of file zend_compile.h.

◆ ZEND_FETCH_CLASS_EXCEPTION

#define ZEND_FETCH_CLASS_EXCEPTION   0x0200

Definition at line 1028 of file zend_compile.h.

◆ ZEND_FETCH_CLASS_INTERFACE

#define ZEND_FETCH_CLASS_INTERFACE   5

Definition at line 1023 of file zend_compile.h.

◆ ZEND_FETCH_CLASS_MASK

#define ZEND_FETCH_CLASS_MASK   0x0f

Definition at line 1025 of file zend_compile.h.

◆ ZEND_FETCH_CLASS_NO_AUTOLOAD

#define ZEND_FETCH_CLASS_NO_AUTOLOAD   0x80

Definition at line 1026 of file zend_compile.h.

◆ ZEND_FETCH_CLASS_PARENT

#define ZEND_FETCH_CLASS_PARENT   2

Definition at line 1020 of file zend_compile.h.

◆ ZEND_FETCH_CLASS_SELF

#define ZEND_FETCH_CLASS_SELF   1

Definition at line 1019 of file zend_compile.h.

◆ ZEND_FETCH_CLASS_SILENT

#define ZEND_FETCH_CLASS_SILENT   0x0100

Definition at line 1027 of file zend_compile.h.

◆ ZEND_FETCH_CLASS_STATIC

#define ZEND_FETCH_CLASS_STATIC   3

Definition at line 1021 of file zend_compile.h.

◆ ZEND_FETCH_CLASS_TRAIT

#define ZEND_FETCH_CLASS_TRAIT   6

Definition at line 1024 of file zend_compile.h.

◆ ZEND_FETCH_DIM_DIM

#define ZEND_FETCH_DIM_DIM   2

Definition at line 1087 of file zend_compile.h.

◆ ZEND_FETCH_DIM_INCDEC

#define ZEND_FETCH_DIM_INCDEC   4

Definition at line 1089 of file zend_compile.h.

◆ ZEND_FETCH_DIM_OBJ

#define ZEND_FETCH_DIM_OBJ   3

Definition at line 1088 of file zend_compile.h.

◆ ZEND_FETCH_DIM_REF

#define ZEND_FETCH_DIM_REF   1

Definition at line 1086 of file zend_compile.h.

◆ ZEND_FETCH_DIM_WRITE

#define ZEND_FETCH_DIM_WRITE   2

Definition at line 1081 of file zend_compile.h.

◆ ZEND_FETCH_GLOBAL

#define ZEND_FETCH_GLOBAL   (1<<1)

Definition at line 1073 of file zend_compile.h.

◆ ZEND_FETCH_GLOBAL_LOCK

#define ZEND_FETCH_GLOBAL_LOCK   (1<<3)

Definition at line 1075 of file zend_compile.h.

◆ ZEND_FETCH_LOCAL

#define ZEND_FETCH_LOCAL   (1<<2)

Definition at line 1074 of file zend_compile.h.

◆ ZEND_FETCH_OBJ_FLAGS

#define ZEND_FETCH_OBJ_FLAGS   3

Definition at line 1082 of file zend_compile.h.

◆ ZEND_FETCH_REF

#define ZEND_FETCH_REF   1

Definition at line 1080 of file zend_compile.h.

◆ ZEND_FETCH_TYPE_MASK

#define ZEND_FETCH_TYPE_MASK   0xe

Definition at line 1077 of file zend_compile.h.

◆ ZEND_FLF_ARG_USES_STRICT_TYPES

#define ZEND_FLF_ARG_USES_STRICT_TYPES ( )
Value:
(EG(current_execute_data) && \
EG(current_execute_data)->func && \
ZEND_CALL_USES_STRICT_TYPES(EG(current_execute_data)))

Definition at line 717 of file zend_compile.h.

◆ ZEND_FN_SCOPE_NAME

#define ZEND_FN_SCOPE_NAME ( function)
Value:
((function) && (function)->common.scope ? ZSTR_VAL((function)->common.scope->name) : "")
#define ZSTR_VAL(zstr)
Definition zend_string.h:68
function(EX_VAR(opline->result.var))

Definition at line 588 of file zend_compile.h.

◆ ZEND_FREE_ON_RETURN

#define ZEND_FREE_ON_RETURN   (1<<0)

Definition at line 1095 of file zend_compile.h.

◆ ZEND_FREE_SWITCH

#define ZEND_FREE_SWITCH   (1<<1)

Definition at line 1096 of file zend_compile.h.

◆ ZEND_FUNCTION_DTOR

#define ZEND_FUNCTION_DTOR   zend_function_dtor

Definition at line 974 of file zend_compile.h.

◆ ZEND_GET_FUNC_NAME

#define ZEND_GET_FUNC_NAME   "__get"

Definition at line 1222 of file zend_compile.h.

◆ ZEND_GOTO

#define ZEND_GOTO   253

Definition at line 1212 of file zend_compile.h.

◆ ZEND_HAS_STATIC_IN_METHODS

#define ZEND_HAS_STATIC_IN_METHODS   (1 << 14) /* X | | | */

Definition at line 297 of file zend_compile.h.

◆ ZEND_INCLUDE

#define ZEND_INCLUDE   (1<<1)

Definition at line 1067 of file zend_compile.h.

◆ ZEND_INCLUDE_ONCE

#define ZEND_INCLUDE_ONCE   (1<<2)

Definition at line 1068 of file zend_compile.h.

◆ ZEND_INTERNAL_CLASS

#define ZEND_INTERNAL_CLASS   1

Definition at line 1063 of file zend_compile.h.

◆ ZEND_INTERNAL_FUNCTION

#define ZEND_INTERNAL_FUNCTION   1

Definition at line 1057 of file zend_compile.h.

◆ ZEND_INVOKE_FUNC_NAME

#define ZEND_INVOKE_FUNC_NAME   "__invoke"

Definition at line 1229 of file zend_compile.h.

◆ ZEND_IS_BINARY_ASSIGN_OP_OPCODE

#define ZEND_IS_BINARY_ASSIGN_OP_OPCODE ( opcode)
Value:
(((opcode) >= ZEND_ADD) && ((opcode) <= ZEND_POW))
#define ZEND_POW
#define ZEND_ADD

Definition at line 1208 of file zend_compile.h.

◆ ZEND_IS_INCREMENT

#define ZEND_IS_INCREMENT ( opcode)
Value:
(((opcode) & 1) == 0)

Definition at line 1206 of file zend_compile.h.

◆ ZEND_ISEMPTY

#define ZEND_ISEMPTY   (1<<0)

Definition at line 1091 of file zend_compile.h.

◆ ZEND_ISSET_FUNC_NAME

#define ZEND_ISSET_FUNC_NAME   "__isset"

Definition at line 1225 of file zend_compile.h.

◆ ZEND_JMP_NULL_BP_VAR_IS

#define ZEND_JMP_NULL_BP_VAR_IS   4

Definition at line 434 of file zend_compile.h.

◆ ZEND_LAST_CATCH

#define ZEND_LAST_CATCH   (1<<0)

Definition at line 1093 of file zend_compile.h.

◆ ZEND_LIVE_LOOP

#define ZEND_LIVE_LOOP   1

Definition at line 180 of file zend_compile.h.

◆ ZEND_LIVE_MASK

#define ZEND_LIVE_MASK   7

Definition at line 184 of file zend_compile.h.

◆ ZEND_LIVE_NEW

#define ZEND_LIVE_NEW   4

Definition at line 183 of file zend_compile.h.

◆ ZEND_LIVE_ROPE

#define ZEND_LIVE_ROPE   3

Definition at line 182 of file zend_compile.h.

◆ ZEND_LIVE_SILENCE

#define ZEND_LIVE_SILENCE   2

Definition at line 181 of file zend_compile.h.

◆ ZEND_LIVE_TMPVAR

#define ZEND_LIVE_TMPVAR   0

Definition at line 179 of file zend_compile.h.

◆ ZEND_NAME_FQ

#define ZEND_NAME_FQ   0

Definition at line 1036 of file zend_compile.h.

◆ ZEND_NAME_NOT_FQ

#define ZEND_NAME_NOT_FQ   1

Definition at line 1037 of file zend_compile.h.

◆ ZEND_NAME_RELATIVE

#define ZEND_NAME_RELATIVE   2

Definition at line 1038 of file zend_compile.h.

◆ ZEND_OFFSET_TO_OPLINE

#define ZEND_OFFSET_TO_OPLINE ( base,
offset )
Value:
((zend_op*)(((char*)(base)) + (int)offset))
struct _zend_op zend_op

Definition at line 737 of file zend_compile.h.

◆ ZEND_OFFSET_TO_OPLINE_NUM

#define ZEND_OFFSET_TO_OPLINE_NUM ( op_array,
base,
offset )
Value:
(ZEND_OFFSET_TO_OPLINE(base, offset) - op_array->opcodes)

Definition at line 740 of file zend_compile.h.

◆ ZEND_OP_ARRAY_EXTENSION

#define ZEND_OP_ARRAY_EXTENSION ( op_array,
handle )
Value:
((void**)RUN_TIME_CACHE(op_array))[handle]
DL_HANDLE handle
Definition ffi.c:3028
#define RUN_TIME_CACHE(op_array)

Definition at line 830 of file zend_compile.h.

◆ ZEND_OPLINE_NUM_TO_OFFSET

#define ZEND_OPLINE_NUM_TO_OFFSET ( op_array,
opline,
opline_num )
Value:
((char*)&(op_array)->opcodes[opline_num] - (char*)(opline))

Definition at line 734 of file zend_compile.h.

◆ ZEND_OPLINE_TO_OFFSET

#define ZEND_OPLINE_TO_OFFSET ( opline,
target )
Value:
((char*)(target) - (char*)(opline))

Definition at line 731 of file zend_compile.h.

◆ ZEND_PARAM_REF

#define ZEND_PARAM_REF   (1<<3)

Definition at line 1033 of file zend_compile.h.

◆ ZEND_PARAM_VARIADIC

#define ZEND_PARAM_VARIADIC   (1<<4)

Definition at line 1034 of file zend_compile.h.

◆ ZEND_PARENTHESIZED_CONDITIONAL

#define ZEND_PARENTHESIZED_CONDITIONAL   1

Definition at line 1195 of file zend_compile.h.

◆ ZEND_PARENTHESIZED_STATIC_PROP

#define ZEND_PARENTHESIZED_STATIC_PROP   1

Definition at line 1198 of file zend_compile.h.

◆ ZEND_PASS_TWO_UNDO_CONSTANT

#define ZEND_PASS_TWO_UNDO_CONSTANT ( op_array,
opline,
node )
Value:
do { \
(node).constant = RT_CONSTANT(opline, node) - (op_array)->literals; \
} while (0)
#define RT_CONSTANT(opline, node)

Definition at line 823 of file zend_compile.h.

◆ ZEND_PASS_TWO_UNDO_JMP_TARGET

#define ZEND_PASS_TWO_UNDO_JMP_TARGET ( op_array,
opline,
node )
Value:
do { \
(node).opline_num = ZEND_OFFSET_TO_OPLINE_NUM(op_array, opline, (node).jmp_offset); \
} while (0)
#define ZEND_OFFSET_TO_OPLINE_NUM(op_array, base, offset)

Definition at line 779 of file zend_compile.h.

◆ ZEND_PASS_TWO_UPDATE_CONSTANT

#define ZEND_PASS_TWO_UPDATE_CONSTANT ( op_array,
opline,
node )
Value:
do { \
(node).constant = \
(((char*)CT_CONSTANT_EX(op_array, (node).constant)) - \
((char*)opline)); \
} while (0)

Definition at line 814 of file zend_compile.h.

◆ ZEND_PASS_TWO_UPDATE_JMP_TARGET

#define ZEND_PASS_TWO_UPDATE_JMP_TARGET ( op_array,
opline,
node )
Value:
do { \
(node).jmp_offset = ZEND_OPLINE_NUM_TO_OFFSET(op_array, opline, (node).opline_num); \
} while (0)
#define ZEND_OPLINE_NUM_TO_OFFSET(op_array, opline, opline_num)

Definition at line 774 of file zend_compile.h.

◆ ZEND_PROPERTY_HOOK_COUNT

#define ZEND_PROPERTY_HOOK_COUNT   2

Definition at line 438 of file zend_compile.h.

◆ ZEND_PROPERTY_HOOK_STRUCT_SIZE

#define ZEND_PROPERTY_HOOK_STRUCT_SIZE   (sizeof(zend_function*) * ZEND_PROPERTY_HOOK_COUNT)

Definition at line 439 of file zend_compile.h.

◆ ZEND_REQUIRE

#define ZEND_REQUIRE   (1<<3)

Definition at line 1069 of file zend_compile.h.

◆ ZEND_REQUIRE_ONCE

#define ZEND_REQUIRE_ONCE   (1<<4)

Definition at line 1070 of file zend_compile.h.

◆ ZEND_RET_USES_STRICT_TYPES

#define ZEND_RET_USES_STRICT_TYPES ( )
Value:
ZEND_CALL_USES_STRICT_TYPES(EG(current_execute_data))

Definition at line 722 of file zend_compile.h.

◆ ZEND_RETURN_REF

#define ZEND_RETURN_REF   1

Definition at line 1180 of file zend_compile.h.

◆ ZEND_RETURN_REFERENCE

#define ZEND_RETURN_REFERENCE   1

Definition at line 556 of file zend_compile.h.

◆ ZEND_RETURN_VAL

#define ZEND_RETURN_VAL   0

Definition at line 1179 of file zend_compile.h.

◆ ZEND_RETURN_VALUE

#define ZEND_RETURN_VALUE   0

Definition at line 555 of file zend_compile.h.

◆ ZEND_RETURNS_FUNCTION

#define ZEND_RETURNS_FUNCTION   (1<<0)

Definition at line 1187 of file zend_compile.h.

◆ ZEND_RETURNS_VALUE

#define ZEND_RETURNS_VALUE   (1<<1)

Definition at line 1188 of file zend_compile.h.

◆ ZEND_SEND_BY_REF

#define ZEND_SEND_BY_REF   1u

Definition at line 1099 of file zend_compile.h.

◆ ZEND_SEND_BY_VAL

#define ZEND_SEND_BY_VAL   0u

Definition at line 1098 of file zend_compile.h.

◆ ZEND_SEND_PREFER_REF

#define ZEND_SEND_PREFER_REF   2u

Definition at line 1100 of file zend_compile.h.

◆ ZEND_SET_ARG_FLAG

#define ZEND_SET_ARG_FLAG ( zf,
arg_num,
mask )
Value:
do { \
(zf)->quick_arg_flags |= (((mask) << 6) << (arg_num) * 2); \
} while (0)

Definition at line 1163 of file zend_compile.h.

◆ ZEND_SET_FUNC_NAME

#define ZEND_SET_FUNC_NAME   "__set"

Definition at line 1223 of file zend_compile.h.

◆ ZEND_SET_OP_JMP_ADDR

#define ZEND_SET_OP_JMP_ADDR ( opline,
node,
val )
Value:
do { \
(node).jmp_offset = ZEND_OPLINE_TO_OFFSET(opline, val); \
} while (0)
zval * val
Definition ffi.c:4262
#define ZEND_OPLINE_TO_OFFSET(opline, target)

Definition at line 769 of file zend_compile.h.

◆ ZEND_SHORT_CIRCUITING_CHAIN_EMPTY

#define ZEND_SHORT_CIRCUITING_CHAIN_EMPTY   2

Definition at line 431 of file zend_compile.h.

◆ ZEND_SHORT_CIRCUITING_CHAIN_EXPR

#define ZEND_SHORT_CIRCUITING_CHAIN_EXPR   0

Definition at line 429 of file zend_compile.h.

◆ ZEND_SHORT_CIRCUITING_CHAIN_ISSET

#define ZEND_SHORT_CIRCUITING_CHAIN_ISSET   1

Definition at line 430 of file zend_compile.h.

◆ ZEND_SHORT_CIRCUITING_CHAIN_MASK

#define ZEND_SHORT_CIRCUITING_CHAIN_MASK   0x3

Definition at line 428 of file zend_compile.h.

◆ ZEND_SYMBOL_CLASS

#define ZEND_SYMBOL_CLASS   (1<<0)

Definition at line 1201 of file zend_compile.h.

◆ ZEND_SYMBOL_CONST

#define ZEND_SYMBOL_CONST   (1<<2)

Definition at line 1203 of file zend_compile.h.

◆ ZEND_SYMBOL_FUNCTION

#define ZEND_SYMBOL_FUNCTION   (1<<1)

Definition at line 1202 of file zend_compile.h.

◆ ZEND_THROW_IS_EXPR

#define ZEND_THROW_IS_EXPR   1u

Definition at line 1102 of file zend_compile.h.

◆ ZEND_TOSTRING_FUNC_NAME

#define ZEND_TOSTRING_FUNC_NAME   "__tostring"

Definition at line 1228 of file zend_compile.h.

◆ zend_try_exception_handler

#define zend_try_exception_handler ( )
Value:
do { \
if (UNEXPECTED(EG(exception))) { \
if (Z_TYPE(EG(user_exception_handler)) != IS_UNDEF) { \
zend_user_exception_handler(); \
} \
} \
} while (0)
bool exception
Definition assert.c:30
#define UNEXPECTED(condition)
#define IS_UNDEF
Definition zend_types.h:600
#define Z_TYPE(zval)
Definition zend_types.h:659

Definition at line 949 of file zend_compile.h.

◆ ZEND_TYPE_NULLABLE

#define ZEND_TYPE_NULLABLE   (1<<8)

Definition at line 1043 of file zend_compile.h.

◆ zend_unmangle_property_name

#define zend_unmangle_property_name ( mangled_property,
class_name,
prop_name )
Value:
zend_unmangle_property_name_ex(mangled_property, class_name, prop_name, NULL)
ZEND_API zend_result zend_unmangle_property_name_ex(const zend_string *name, const char **class_name, const char **prop_name, size_t *prop_len)

Definition at line 964 of file zend_compile.h.

◆ ZEND_UNSET_FUNC_NAME

#define ZEND_UNSET_FUNC_NAME   "__unset"

Definition at line 1224 of file zend_compile.h.

◆ ZEND_USE_ABS_CONST_ADDR

#define ZEND_USE_ABS_CONST_ADDR   0

Definition at line 65 of file zend_compile.h.

◆ ZEND_USE_ABS_JMP_ADDR

#define ZEND_USE_ABS_JMP_ADDR   0

Definition at line 64 of file zend_compile.h.

◆ ZEND_USER_CLASS

#define ZEND_USER_CLASS   2

Definition at line 1064 of file zend_compile.h.

◆ ZEND_USER_CODE

#define ZEND_USER_CODE ( type)
Value:
#define ZEND_INTERNAL_FUNCTION

Definition at line 1061 of file zend_compile.h.

◆ ZEND_USER_FUNCTION

#define ZEND_USER_FUNCTION   2

Definition at line 1058 of file zend_compile.h.

◆ ZEND_VIRTUAL_PROPERTY_OFFSET

#define ZEND_VIRTUAL_PROPERTY_OFFSET   ((uint32_t)-1)

Definition at line 442 of file zend_compile.h.

Typedef Documentation

◆ binary_op_type

typedef zend_result(ZEND_FASTCALL * binary_op_type) (zval *, zval *, zval *)

Definition at line 885 of file zend_compile.h.

◆ unary_op_type

typedef zend_result(ZEND_FASTCALL * unary_op_type) (zval *, zval *)

Definition at line 884 of file zend_compile.h.

◆ user_opcode_handler_t

typedef int(* user_opcode_handler_t) (zend_execute_data *execute_data)

Definition at line 135 of file zend_compile.h.

◆ zend_arg_info

typedef struct _zend_arg_info zend_arg_info

◆ zend_ast_znode

◆ zend_auto_global

◆ zend_auto_global_callback

typedef bool(* zend_auto_global_callback) (zend_string *name)

Definition at line 989 of file zend_compile.h.

◆ zend_brk_cont_element

◆ zend_class_constant

◆ zend_compile_position

◆ zend_declarables

◆ zend_file_context

◆ zend_internal_arg_info

◆ zend_internal_function

◆ zend_internal_function_info

◆ zend_label

typedef struct _zend_label zend_label

◆ zend_live_range

◆ zend_needs_live_range_cb

typedef bool(* zend_needs_live_range_cb) (zend_op_array *op_array, zend_op *opline)

Definition at line 977 of file zend_compile.h.

◆ zend_op

typedef struct _zend_op zend_op

Definition at line 55 of file zend_compile.h.

◆ zend_op_array

typedef struct _zend_op_array zend_op_array

Definition at line 54 of file zend_compile.h.

◆ zend_oparray_context

◆ zend_parser_stack_elem

◆ zend_property_info

Definition at line 192 of file zend_compile.h.

◆ zend_try_catch_element

◆ zif_handler

Definition at line 562 of file zend_compile.h.

◆ znode

typedef struct _znode znode

◆ znode_op

typedef union _znode_op znode_op

Enumeration Type Documentation

◆ _zend_compile_position

Enumerator
ZEND_COMPILE_POSITION_AT_SHEBANG 
ZEND_COMPILE_POSITION_AT_OPEN_TAG 
ZEND_COMPILE_POSITION_AFTER_OPEN_TAG 

Definition at line 847 of file zend_compile.h.

◆ zend_modifier_target

Enumerator
ZEND_MODIFIER_TARGET_PROPERTY 
ZEND_MODIFIER_TARGET_METHOD 
ZEND_MODIFIER_TARGET_CONSTANT 
ZEND_MODIFIER_TARGET_CPP 
ZEND_MODIFIER_TARGET_PROPERTY_HOOK 

Definition at line 893 of file zend_compile.h.

Function Documentation

◆ compile_file()

ZEND_API zend_op_array * compile_file ( zend_file_handle * file_handle,
int type )

Definition at line 272 of file phpdbg.h.

◆ compile_filename()

ZEND_API zend_op_array * compile_filename ( int type,
zend_string * filename )

◆ compile_string()

ZEND_API zend_op_array * compile_string ( zend_string * source_string,
const char * filename,
zend_compile_position position )

Definition at line 274 of file phpdbg.h.

◆ destroy_op_array()

ZEND_API void destroy_op_array ( zend_op_array * op_array)

Definition at line 555 of file zend_opcode.c.

◆ destroy_zend_class()

ZEND_API void destroy_zend_class ( zval * zv)

Definition at line 292 of file zend_opcode.c.

◆ destroy_zend_function()

ZEND_API void destroy_zend_function ( zend_function * function)

Definition at line 104 of file zend_opcode.c.

◆ do_bind_class()

ZEND_API zend_result do_bind_class ( zval * lcname,
zend_string * lc_parent_name )

Definition at line 1356 of file zend_compile.c.

◆ do_bind_function()

ZEND_API zend_result do_bind_function ( zend_function * func,
zval * lcname )

Definition at line 1295 of file zend_compile.c.

◆ function_add_ref()

ZEND_API void function_add_ref ( zend_function * function)

Definition at line 1257 of file zend_compile.c.

◆ get_binary_op()

ZEND_API binary_op_type get_binary_op ( int opcode)

Definition at line 1229 of file zend_opcode.c.

◆ get_unary_op()

ZEND_API unary_op_type get_unary_op ( int opcode)

Definition at line 1217 of file zend_opcode.c.

◆ init_compiler()

void init_compiler ( void )

Definition at line 448 of file zend_compile.c.

◆ init_op_array()

ZEND_API void init_op_array ( zend_op_array * op_array,
uint8_t type,
int initial_ops_size )

Definition at line 48 of file zend_opcode.c.

◆ lex_scan()

ZEND_API int ZEND_FASTCALL lex_scan ( zval * zendlval,
zend_parser_stack_elem * elem )

◆ open_file_for_scanning()

ZEND_API zend_result open_file_for_scanning ( zend_file_handle * file_handle)

◆ pass_two()

ZEND_API void pass_two ( zend_op_array * op_array)

Definition at line 1047 of file zend_opcode.c.

◆ shutdown_compiler()

void shutdown_compiler ( void )

Definition at line 465 of file zend_compile.c.

◆ shutdown_scanner()

void shutdown_scanner ( void )

◆ startup_scanner()

void startup_scanner ( void )

◆ zend_activate_auto_globals()

ZEND_API void zend_activate_auto_globals ( void )

Definition at line 2021 of file zend_compile.c.

◆ zend_add_anonymous_class_modifier()

uint32_t zend_add_anonymous_class_modifier ( uint32_t flags,
uint32_t new_flag )

Definition at line 995 of file zend_compile.c.

◆ zend_add_class_modifier()

uint32_t zend_add_class_modifier ( uint32_t flags,
uint32_t new_flag )

Definition at line 970 of file zend_compile.c.

◆ zend_add_member_modifier()

uint32_t zend_add_member_modifier ( uint32_t flags,
uint32_t new_flag,
zend_modifier_target target )

Definition at line 1014 of file zend_compile.c.

◆ zend_assert_valid_class_name()

void zend_assert_valid_class_name ( const zend_string * const_name,
const char * type )

Definition at line 240 of file zend_compile.c.

◆ zend_ast_append_str()

zend_ast * zend_ast_append_str ( zend_ast * left,
zend_ast * right )

Definition at line 2129 of file zend_compile.c.

◆ zend_ast_create_znode()

ZEND_API zend_ast *ZEND_FASTCALL zend_ast_create_znode ( znode * node)

Definition at line 45 of file zend_ast.c.

◆ zend_binary_op_produces_error()

ZEND_API bool zend_binary_op_produces_error ( uint32_t opcode,
const zval * op1,
const zval * op2 )

Definition at line 9680 of file zend_compile.c.

◆ zend_bind_class_in_slot()

ZEND_API zend_class_entry * zend_bind_class_in_slot ( zval * class_table_slot,
zval * lcname,
zend_string * lc_parent_name )

Definition at line 1314 of file zend_compile.c.

◆ zend_class_add_ref()

void zend_class_add_ref ( zval * zv)

Definition at line 535 of file zend_opcode.c.

◆ zend_cleanup_internal_class_data()

ZEND_API void zend_cleanup_internal_class_data ( zend_class_entry * ce)

Definition at line 178 of file zend_opcode.c.

◆ zend_cleanup_mutable_class_data()

ZEND_API void zend_cleanup_mutable_class_data ( zend_class_entry * ce)

Definition at line 251 of file zend_opcode.c.

◆ zend_compile_string_to_ast()

ZEND_API zend_ast * zend_compile_string_to_ast ( zend_string * code,
struct _zend_arena ** ast_arena,
zend_string * filename )

◆ zend_compile_top_stmt()

void zend_compile_top_stmt ( zend_ast * ast)

Definition at line 11289 of file zend_compile.c.

◆ zend_const_expr_to_zval()

void zend_const_expr_to_zval ( zval * result,
zend_ast ** ast_ptr,
bool allow_dynamic )

Definition at line 11270 of file zend_compile.c.

◆ zend_create_member_string()

ZEND_API zend_string * zend_create_member_string ( zend_string * class_name,
zend_string * member_name )

Definition at line 1062 of file zend_compile.c.

◆ zend_destroy_file_handle()

ZEND_API void zend_destroy_file_handle ( zend_file_handle * file_handle)

Definition at line 268 of file zend_stream.c.

◆ zend_destroy_static_vars()

ZEND_API void zend_destroy_static_vars ( zend_op_array * op_array)

Definition at line 544 of file zend_opcode.c.

◆ zend_dirname()

ZEND_API size_t zend_dirname ( char * path,
size_t len )

Definition at line 2182 of file zend_compile.c.

◆ zend_emit_final_return()

void zend_emit_final_return ( bool return_one)

Definition at line 2723 of file zend_compile.c.

◆ zend_execute_script()

ZEND_API zend_result zend_execute_script ( int type,
zval * retval,
zend_file_handle * file_handle )

Definition at line 1925 of file zend.c.

◆ zend_execute_scripts()

ZEND_API zend_result zend_execute_scripts ( int type,
zval * retval,
int file_count,
... )

Definition at line 1954 of file zend.c.

◆ zend_file_context_begin()

void zend_file_context_begin ( zend_file_context * prev_context)

Definition at line 395 of file zend_compile.c.

◆ zend_file_context_end()

void zend_file_context_end ( zend_file_context * prev_context)

Definition at line 409 of file zend_compile.c.

◆ zend_free_internal_arg_info()

void zend_free_internal_arg_info ( zend_internal_function * function)

Definition at line 126 of file zend_opcode.c.

◆ zend_function_dtor()

ZEND_API void zend_function_dtor ( zval * zv)

Definition at line 144 of file zend_opcode.c.

◆ zend_get_call_op()

ZEND_API uint8_t zend_get_call_op ( const zend_op * init_op,
zend_function * fbc )

Definition at line 3935 of file zend_compile.c.

◆ zend_get_class_fetch_type()

uint32_t zend_get_class_fetch_type ( const zend_string * name)

Definition at line 1744 of file zend_compile.c.

◆ zend_get_compiled_filename()

ZEND_API zend_string * zend_get_compiled_filename ( void )

Definition at line 510 of file zend_compile.c.

◆ zend_get_compiled_lineno()

ZEND_API int zend_get_compiled_lineno ( void )

Definition at line 516 of file zend_compile.c.

◆ zend_get_compiled_variable_name()

ZEND_API zend_string * zend_get_compiled_variable_name ( const zend_op_array * op_array,
uint32_t var )

Definition at line 2123 of file zend_compile.c.

◆ zend_get_property_hook_kind_from_name()

zend_property_hook_kind zend_get_property_hook_kind_from_name ( zend_string * name)

Definition at line 8409 of file zend_compile.c.

◆ zend_get_scanned_file_offset()

ZEND_API size_t zend_get_scanned_file_offset ( void )

◆ zend_handle_encoding_declaration()

bool zend_handle_encoding_declaration ( zend_ast * ast)

Definition at line 6788 of file zend_compile.c.

◆ zend_init_compiler_data_structures()

void zend_init_compiler_data_structures ( void )

Definition at line 417 of file zend_compile.c.

◆ zend_initialize_class_data()

ZEND_API void zend_initialize_class_data ( zend_class_entry * ce,
bool nullify_handlers )

Definition at line 2054 of file zend_compile.c.

◆ zend_is_auto_global()

ZEND_API bool zend_is_auto_global ( zend_string * name)

Definition at line 1992 of file zend_compile.c.

◆ zend_is_auto_global_str()

ZEND_API bool zend_is_auto_global_str ( const char * name,
size_t len )

Definition at line 1979 of file zend_compile.c.

◆ zend_is_compiling()

ZEND_API bool zend_is_compiling ( void )

Definition at line 522 of file zend_compile.c.

◆ zend_is_op_long_compatible()

ZEND_API bool zend_is_op_long_compatible ( const zval * op)

Definition at line 9658 of file zend_compile.c.

◆ zend_is_smart_branch()

ZEND_API bool zend_is_smart_branch ( const zend_op * opline)

Definition at line 2366 of file zend_compile.c.

◆ zend_make_compiled_string_description()

ZEND_API char * zend_make_compiled_string_description ( const char * name)

Definition at line 1980 of file zend.c.

◆ zend_mangle_property_name()

ZEND_API zend_string * zend_mangle_property_name ( const char * src1,
size_t src1_length,
const char * src2,
size_t src2_length,
bool internal )

Definition at line 1575 of file zend_compile.c.

◆ zend_modifier_list_to_flags()

uint32_t zend_modifier_list_to_flags ( zend_modifier_target target,
zend_ast * modifiers )

Definition at line 951 of file zend_compile.c.

◆ zend_modifier_token_to_flag()

uint32_t zend_modifier_token_to_flag ( zend_modifier_target target,
uint32_t flags )

Definition at line 873 of file zend_compile.c.

◆ zend_negate_num_string()

zend_ast * zend_negate_num_string ( zend_ast * ast)

Definition at line 2150 of file zend_compile.c.

◆ zend_oparray_context_begin()

void zend_oparray_context_begin ( zend_oparray_context * prev_context,
zend_op_array * op_array )

Definition at line 326 of file zend_compile.c.

◆ zend_oparray_context_end()

void zend_oparray_context_end ( zend_oparray_context * prev_context)

Definition at line 346 of file zend_compile.c.

◆ zend_recalc_live_ranges()

ZEND_API void zend_recalc_live_ranges ( zend_op_array * op_array,
zend_needs_live_range_cb needs_live_range )

Definition at line 1037 of file zend_opcode.c.

◆ zend_register_auto_global()

ZEND_API zend_result zend_register_auto_global ( zend_string * name,
bool jit,
zend_auto_global_callback auto_global_callback )

Definition at line 2006 of file zend_compile.c.

◆ zend_resolve_goto_label()

void zend_resolve_goto_label ( zend_op_array * op_array,
zend_op * opline )

Definition at line 5850 of file zend_compile.c.

◆ zend_restore_compiled_filename()

ZEND_API void zend_restore_compiled_filename ( zend_string * original_compiled_filename)

Definition at line 500 of file zend_compile.c.

◆ zend_set_compiled_filename()

ZEND_API zend_string * zend_set_compiled_filename ( zend_string * new_compiled_filename)

Definition at line 493 of file zend_compile.c.

◆ zend_set_function_arg_flags()

ZEND_API void zend_set_function_arg_flags ( zend_function * func)

Definition at line 6935 of file zend_compile.c.

◆ ZEND_STATIC_ASSERT()

ZEND_STATIC_ASSERT ( ZEND_MM_ALIGNED_SIZE(sizeof(zval)) = =sizeof(zval),
"zval must be aligned by ZEND_MM_ALIGNMENT"  )

◆ zend_stop_lexing()

void zend_stop_lexing ( void )

Definition at line 698 of file zend_compile.c.

◆ zend_type_release()

ZEND_API void zend_type_release ( zend_type type,
bool persistent )

Definition at line 112 of file zend_opcode.c.

◆ zend_type_to_string()

ZEND_API zend_string * zend_type_to_string ( zend_type type)

Definition at line 1532 of file zend_compile.c.

◆ zend_type_to_string_resolved()

zend_string * zend_type_to_string_resolved ( zend_type type,
zend_class_entry * scope )

Definition at line 1442 of file zend_compile.c.

◆ zend_unary_op_produces_error()

ZEND_API bool zend_unary_op_produces_error ( uint32_t opcode,
const zval * op )

Definition at line 9757 of file zend_compile.c.

◆ zend_unmangle_property_name_ex()

ZEND_API zend_result zend_unmangle_property_name_ex ( const zend_string * name,
const char ** class_name,
const char ** prop_name,
size_t * prop_len )

Definition at line 1587 of file zend_compile.c.

◆ zend_user_exception_handler()

ZEND_API ZEND_COLD void zend_user_exception_handler ( void )

Definition at line 1887 of file zend.c.

◆ zend_visibility_string()

char * zend_visibility_string ( uint32_t fn_flags)

Definition at line 202 of file zend_inheritance.c.

◆ zendlex()

int ZEND_FASTCALL zendlex ( zend_parser_stack_elem * elem)

Definition at line 2037 of file zend_compile.c.

◆ zval_make_interned_string()

zend_string * zval_make_interned_string ( zval * zv)

Definition at line 558 of file zend_compile.c.

Variable Documentation

◆ zend_compile_file

ZEND_API zend_op_array *(* zend_compile_file) (zend_file_handle *file_handle, int type) ( zend_file_handle * file_handle,
int type )
extern

Definition at line 87 of file zend_compile.c.

◆ zend_compile_string

ZEND_API zend_op_array *(* zend_compile_string) (zend_string *source_string, const char *filename, zend_compile_position position) ( zend_string * source_string,
const char * filename,
zend_compile_position position )
extern

Definition at line 88 of file zend_compile.c.