From 7fad42c8222d7630a0e775faf9b8eb1575266bf7 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Tue, 10 Jan 2023 17:56:48 +0100 Subject: [PATCH 01/22] Zend/zend_build.h: include php_config.h Without this, the macros ZTS, ZEND_DEBUG and PHP_COMPILER_ID may be unavailable. --- Zend/zend_build.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Zend/zend_build.h b/Zend/zend_build.h index c604fb311a74e..795f2fa9fd531 100644 --- a/Zend/zend_build.h +++ b/Zend/zend_build.h @@ -19,6 +19,12 @@ #ifndef ZEND_BUILD_H #define ZEND_BUILD_H +#ifdef PHP_WIN32 +#include "config.w32.h" +#else +#include "php_config.h" +#endif + #define ZEND_TOSTR_(x) #x #define ZEND_TOSTR(x) ZEND_TOSTR_(x) From 16947f75c507c51541c1ce4e543db41f5c209856 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Tue, 10 Jan 2023 18:09:51 +0100 Subject: [PATCH 02/22] main/php_globals.h: add missing include for PHPAPI --- main/php_globals.h | 1 + 1 file changed, 1 insertion(+) diff --git a/main/php_globals.h b/main/php_globals.h index cbf0271c7b763..9a9653f4c1e08 100644 --- a/main/php_globals.h +++ b/main/php_globals.h @@ -17,6 +17,7 @@ #ifndef PHP_GLOBALS_H #define PHP_GLOBALS_H +#include "php.h" // for PHPAPI #include "zend_globals.h" typedef struct _php_core_globals php_core_globals; From 11da3c7373660845c9f81d85d1929f0d32027c7c Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 4 Jan 2023 21:30:43 +0100 Subject: [PATCH 03/22] ext/standard/md5: include cleanup --- ext/standard/md5.c | 1 - ext/standard/md5.h | 4 ++++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/ext/standard/md5.c b/ext/standard/md5.c index 899ff6aaeecb0..b7cff21d02419 100644 --- a/ext/standard/md5.c +++ b/ext/standard/md5.c @@ -16,7 +16,6 @@ +----------------------------------------------------------------------+ */ -#include "php.h" #include "md5.h" PHPAPI void make_digest(char *md5str, const unsigned char *digest) /* {{{ */ diff --git a/ext/standard/md5.h b/ext/standard/md5.h index 0003a934be62d..5814142f1968c 100644 --- a/ext/standard/md5.h +++ b/ext/standard/md5.h @@ -18,6 +18,10 @@ #ifndef MD5_H #define MD5_H +#include "php.h" // for PHPAPI + +#include + PHPAPI void make_digest(char *md5str, const unsigned char *digest); PHPAPI void make_digest_ex(char *md5str, const unsigned char *digest, int len); From ac2e01bfe13b056a9e530016ebcd1394c1f5965e Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 4 Jan 2023 21:29:01 +0100 Subject: [PATCH 04/22] Zend/zend_system_id: include cleanup --- Zend/zend_system_id.c | 5 ++--- Zend/zend_system_id.h | 3 +++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Zend/zend_system_id.c b/Zend/zend_system_id.c index 8390bba8b0f25..deb3e27823e23 100644 --- a/Zend/zend_system_id.c +++ b/Zend/zend_system_id.c @@ -15,11 +15,10 @@ +----------------------------------------------------------------------+ */ -#include "php.h" #include "zend_system_id.h" -#include "zend_extensions.h" +#include "zend_extensions.h" // for ZEND_EXTENSION_BUILD_ID #include "ext/standard/md5.h" -#include "ext/hash/php_hash.h" +#include "ext/hash/php_hash.h" // for php_hash_bin2hex() ZEND_API char zend_system_id[32]; diff --git a/Zend/zend_system_id.h b/Zend/zend_system_id.h index 60514e15a0976..3c008637694ed 100644 --- a/Zend/zend_system_id.h +++ b/Zend/zend_system_id.h @@ -17,6 +17,9 @@ #ifndef ZEND_SYSTEM_ID_H #define ZEND_SYSTEM_ID_H +#include "zend_portability.h" // for BEGIN_EXTERN_C +#include "zend_types.h" // for ZEND_RESULT_CODE + BEGIN_EXTERN_C() /* True global; Write-only during MINIT/startup */ extern ZEND_API char zend_system_id[32]; From fa36831b450e61764a975323d725e184f79c01bb Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 4 Jan 2023 22:06:12 +0100 Subject: [PATCH 05/22] Zend/zend_arena: include cleanup --- Zend/zend_arena.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Zend/zend_arena.h b/Zend/zend_arena.h index a44082e52fb9c..45ef617cf190a 100644 --- a/Zend/zend_arena.h +++ b/Zend/zend_arena.h @@ -19,7 +19,10 @@ #ifndef _ZEND_ARENA_H_ #define _ZEND_ARENA_H_ -#include "zend.h" +#include "zend_multiply.h" // for zend_safe_address() +#include "zend.h" // for zend_error() + +#include // for size_t #ifndef ZEND_TRACK_ARENA_ALLOC From a0ac083f2e6ee775b31fbf56cc48e9fd7600b448 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 5 Jan 2023 10:12:01 +0100 Subject: [PATCH 06/22] Zend/zend_multiply: include cleanup --- Zend/zend_multiply.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Zend/zend_multiply.h b/Zend/zend_multiply.h index a99e858bd7798..417ee9990a800 100644 --- a/Zend/zend_multiply.h +++ b/Zend/zend_multiply.h @@ -17,11 +17,12 @@ +----------------------------------------------------------------------+ */ -#include "zend_portability.h" - #ifndef ZEND_MULTIPLY_H #define ZEND_MULTIPLY_H +#include "zend_portability.h" +#include "zend.h" // for zend_error_noreturn() + #if PHP_HAVE_BUILTIN_SMULL_OVERFLOW && SIZEOF_LONG == SIZEOF_ZEND_LONG #define ZEND_SIGNED_MULTIPLY_LONG(a, b, lval, dval, usedval) do { \ From c6caa279f892222e77fc48828aad4bb88f321599 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 4 Jan 2023 21:28:03 +0100 Subject: [PATCH 07/22] Zend/zend_extensions: include cleanup --- Zend/zend_extensions.c | 5 ++++- Zend/zend_extensions.h | 11 +++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/Zend/zend_extensions.c b/Zend/zend_extensions.c index 1f3687642ab67..4e6fe95917d95 100644 --- a/Zend/zend_extensions.c +++ b/Zend/zend_extensions.c @@ -18,7 +18,10 @@ */ #include "zend_extensions.h" -#include "zend_system_id.h" +#include "zend_arena.h" +#include "zend_globals.h" // for struct _zend_compiler_globals +#include "zend_globals_macros.h" // for CG() +#include "zend_system_id.h" // for zend_add_system_entropy() ZEND_API zend_llist zend_extensions; ZEND_API uint32_t zend_extension_flags = 0; diff --git a/Zend/zend_extensions.h b/Zend/zend_extensions.h index 14ba9054d9b6a..ff28a14509ace 100644 --- a/Zend/zend_extensions.h +++ b/Zend/zend_extensions.h @@ -20,8 +20,15 @@ #ifndef ZEND_EXTENSIONS_H #define ZEND_EXTENSIONS_H -#include "zend_compile.h" -#include "zend_build.h" +#include "zend_build.h" // for ZEND_TOSTR() +#include "zend_portability.h" // for BEGIN_EXTERN_C +#include "zend_types.h" // for zend_result + +#include // for size_t + +typedef struct _zend_execute_data zend_execute_data; +typedef struct _zend_op_array zend_op_array; +typedef struct _zend_llist zend_llist; /* The constants below are derived from ext/opcache/ZendAccelerator.h From fec929bc2a8f638f906d30d4d2f470ed7229d308 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 4 Jan 2023 21:34:55 +0100 Subject: [PATCH 08/22] Zend/zend_float: include cleanup --- Zend/zend_float.c | 4 ++-- Zend/zend_float.h | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Zend/zend_float.c b/Zend/zend_float.c index 90af0c4a5f900..ca2ed83282de8 100644 --- a/Zend/zend_float.c +++ b/Zend/zend_float.c @@ -16,9 +16,9 @@ +----------------------------------------------------------------------+ */ -#include "zend.h" -#include "zend_compile.h" #include "zend_float.h" +#include "zend_globals.h" // struct _zend_executor_globals +#include "zend_globals_macros.h" // for EG() ZEND_API void zend_init_fpu(void) /* {{{ */ { diff --git a/Zend/zend_float.h b/Zend/zend_float.h index c8e91122a3590..d4d67592a5f16 100644 --- a/Zend/zend_float.h +++ b/Zend/zend_float.h @@ -19,6 +19,8 @@ #ifndef ZEND_FLOAT_H #define ZEND_FLOAT_H +#include "zend_portability.h" // for BEGIN_EXTERN_C + BEGIN_EXTERN_C() /* From beb188fe6ff2d16ca1460d97399b34593559f93c Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 4 Jan 2023 21:37:20 +0100 Subject: [PATCH 09/22] Zend/zend_stream: include cleanup --- Zend/zend_stream.c | 6 ++++-- Zend/zend_stream.h | 9 ++++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/Zend/zend_stream.c b/Zend/zend_stream.c index 8e11841ad2658..41b89d1d86b5f 100644 --- a/Zend/zend_stream.c +++ b/Zend/zend_stream.c @@ -19,9 +19,11 @@ +----------------------------------------------------------------------+ */ -#include "zend.h" -#include "zend_compile.h" #include "zend_stream.h" +#include "zend_globals.h" // struct _zend_compiler_globals +#include "zend_globals_macros.h" // for CG() +#include "zend_string.h" +#include "zend.h" // for zend_stream_open_function ZEND_DLIMPORT int isatty(int fd); diff --git a/Zend/zend_stream.h b/Zend/zend_stream.h index 047719e175a04..22541bf8d929e 100644 --- a/Zend/zend_stream.h +++ b/Zend/zend_stream.h @@ -22,9 +22,16 @@ #ifndef ZEND_STREAM_H #define ZEND_STREAM_H -#include +#include "zend_portability.h" // for BEGIN_EXTERN_C +#include "zend_types.h" // for zend_uchar + +#include +#include // for FILE +#include // for ssize_t #include +typedef struct _zend_string zend_string; + /* Lightweight stream implementation for the ZE scanners. * These functions are private to the engine. * */ From eb66a5918d9d9309383ad351d500eef7ef228ffa Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 4 Jan 2023 21:42:29 +0100 Subject: [PATCH 10/22] Zend/Optimizer/zend_cfg: include cleanup --- Zend/Optimizer/zend_cfg.c | 9 ++++----- Zend/Optimizer/zend_cfg.h | 7 +++++++ 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/Zend/Optimizer/zend_cfg.c b/Zend/Optimizer/zend_cfg.c index 6d538f71316cc..e99051542c465 100644 --- a/Zend/Optimizer/zend_cfg.c +++ b/Zend/Optimizer/zend_cfg.c @@ -16,13 +16,12 @@ +----------------------------------------------------------------------+ */ -#include "zend_compile.h" #include "zend_cfg.h" -#include "zend_func_info.h" -#include "zend_worklist.h" -#include "zend_optimizer.h" +#include "zend_func_info.h" // for ZEND_FUNC_FREE_LOOP_VAR +#include "zend_globals.h" // struct _zend_executor_globals +#include "zend_globals_macros.h" // for EG() #include "zend_optimizer_internal.h" -#include "zend_sort.h" +#include "zend_worklist.h" static void zend_mark_reachable(zend_op *opcodes, zend_cfg *cfg, zend_basic_block *b) /* {{{ */ { diff --git a/Zend/Optimizer/zend_cfg.h b/Zend/Optimizer/zend_cfg.h index 93d455060686e..cf0a591b36307 100644 --- a/Zend/Optimizer/zend_cfg.h +++ b/Zend/Optimizer/zend_cfg.h @@ -19,6 +19,13 @@ #ifndef ZEND_CFG_H #define ZEND_CFG_H +#include "zend_portability.h" // for BEGIN_EXTERN_C + +#include + +typedef struct _zend_arena zend_arena; +typedef struct _zend_op_array zend_op_array; + /* zend_basic_block.flags */ #define ZEND_BB_START (1<<0) /* first block */ #define ZEND_BB_FOLLOW (1<<1) /* follows the next block */ From a976ed9badae06a7761afa926f735e5f9f71dcbc Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 4 Jan 2023 21:45:57 +0100 Subject: [PATCH 11/22] Zend/Optimizer/zend_optimizer: include cleanup --- Zend/Optimizer/zend_optimizer.c | 19 +++++++++---------- Zend/Optimizer/zend_optimizer.h | 7 +++++-- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/Zend/Optimizer/zend_optimizer.c b/Zend/Optimizer/zend_optimizer.c index b5841159bf12c..dcbb355ff99e2 100644 --- a/Zend/Optimizer/zend_optimizer.c +++ b/Zend/Optimizer/zend_optimizer.c @@ -21,17 +21,16 @@ #include "Optimizer/zend_optimizer.h" #include "Optimizer/zend_optimizer_internal.h" -#include "zend_API.h" -#include "zend_constants.h" -#include "zend_execute.h" -#include "zend_vm.h" -#include "zend_cfg.h" -#include "zend_func_info.h" -#include "zend_call_graph.h" -#include "zend_inference.h" -#include "zend_dump.h" -#include "php.h" +#include "php_globals.h" // for PG() +#include "zend_API.h" // for ZVAL_EMPTY_STRING() +#include "zend_arena.h" +#include "zend_call_graph.h" // for struct _zend_func_info +#include "zend_dump.h" // for zend_dump_op_array() +#include "zend_inference.h" // for OP1_INFO(), ... +#include "zend_ini.h" #include "zend_observer.h" +#include "zend_virtual_cwd.h" //for IS_ABSOLUTE_PATH() +#include "zend_vm.h" #ifndef ZEND_OPTIMIZER_MAX_REGISTERED_PASSES # define ZEND_OPTIMIZER_MAX_REGISTERED_PASSES 32 diff --git a/Zend/Optimizer/zend_optimizer.h b/Zend/Optimizer/zend_optimizer.h index 16bfd75520d89..ae794b1ae6659 100644 --- a/Zend/Optimizer/zend_optimizer.h +++ b/Zend/Optimizer/zend_optimizer.h @@ -22,8 +22,11 @@ #ifndef ZEND_OPTIMIZER_H #define ZEND_OPTIMIZER_H -#include "zend.h" -#include "zend_compile.h" +#include "zend_compile.h" // for zend_op_array +#include "zend_hash.h" +#include "zend_portability.h" // for BEGIN_EXTERN_C + +typedef struct _zend_string zend_string; #define ZEND_OPTIMIZER_PASS_1 (1<<0) /* Simple local optimizations */ #define ZEND_OPTIMIZER_PASS_2 (1<<1) /* */ From f28311e2fbe0d320c9c2fa5c2f83f5346c529b9e Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 4 Jan 2023 21:45:32 +0100 Subject: [PATCH 12/22] Zend/Optimizer/zend_ssa: include cleanup --- Zend/Optimizer/zend_ssa.c | 9 +++++---- Zend/Optimizer/zend_ssa.h | 8 +++++++- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/Zend/Optimizer/zend_ssa.c b/Zend/Optimizer/zend_ssa.c index 67165a9b26d7a..84f0d4d260fe9 100644 --- a/Zend/Optimizer/zend_ssa.c +++ b/Zend/Optimizer/zend_ssa.c @@ -17,12 +17,13 @@ +----------------------------------------------------------------------+ */ -#include "zend_compile.h" -#include "zend_dfg.h" #include "zend_ssa.h" +#include "zend_arena.h" +#include "zend_optimizer_internal.h" +#include "zend_dfg.h" #include "zend_dump.h" -#include "zend_inference.h" -#include "Optimizer/zend_optimizer_internal.h" +#include "zend_inference.h" // for zend_sub_will_overflow() +#include "zend_type_info.h" // for MAY_BE_REF static bool dominates(const zend_basic_block *blocks, int a, int b) { while (blocks[b].level > blocks[a].level) { diff --git a/Zend/Optimizer/zend_ssa.h b/Zend/Optimizer/zend_ssa.h index 9fde352c79cc1..035cce5cae2eb 100644 --- a/Zend/Optimizer/zend_ssa.h +++ b/Zend/Optimizer/zend_ssa.h @@ -19,8 +19,14 @@ #ifndef ZEND_SSA_H #define ZEND_SSA_H -#include "zend_optimizer.h" #include "zend_cfg.h" +#include "zend_compile.h" // for struct _zend_op +#include "zend_long.h" +#include "zend_portability.h" // for BEGIN_EXTERN_C +#include "zend_types.h" // for zend_result + +typedef struct _zend_class_entry zend_class_entry; +typedef struct _zend_script zend_script; typedef struct _zend_ssa_range { zend_long min; From fb28534058f58a206591aa7666e98377a5639fe1 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 4 Jan 2023 09:43:27 +0100 Subject: [PATCH 13/22] Zend/zend_long: include cleanup --- Zend/zend_long.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Zend/zend_long.h b/Zend/zend_long.h index 3796f1c5ababb..f2d3ee81bd699 100644 --- a/Zend/zend_long.h +++ b/Zend/zend_long.h @@ -19,6 +19,12 @@ #ifndef ZEND_LONG_H #define ZEND_LONG_H +#ifdef PHP_WIN32 +#include "config.w32.h" +#else +#include "php_config.h" // for SIZEOF_SIZE_T +#endif + #include #include From 4d3cb4434cd7a938be487d796ee5c84936a04549 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 5 Jan 2023 09:24:24 +0100 Subject: [PATCH 14/22] ext/opcache/zend_accelerator_hash: include cleanup --- ext/opcache/zend_accelerator_hash.c | 2 -- ext/opcache/zend_accelerator_hash.h | 7 ++++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/ext/opcache/zend_accelerator_hash.c b/ext/opcache/zend_accelerator_hash.c index 676ed32ce8ff3..2354409fd51e5 100644 --- a/ext/opcache/zend_accelerator_hash.c +++ b/ext/opcache/zend_accelerator_hash.c @@ -19,9 +19,7 @@ +----------------------------------------------------------------------+ */ -#include "ZendAccelerator.h" #include "zend_accelerator_hash.h" -#include "zend_hash.h" #include "zend_shared_alloc.h" /* Generated on an Octa-ALPHA 300MHz CPU & 2.5GB RAM monster */ diff --git a/ext/opcache/zend_accelerator_hash.h b/ext/opcache/zend_accelerator_hash.h index 755d3f13ec516..c868427491ef4 100644 --- a/ext/opcache/zend_accelerator_hash.h +++ b/ext/opcache/zend_accelerator_hash.h @@ -22,7 +22,12 @@ #ifndef ZEND_ACCELERATOR_HASH_H #define ZEND_ACCELERATOR_HASH_H -#include "zend.h" +#include "zend_long.h" +#include "zend_portability.h" // for BEGIN_EXTERN_C + +#include + +typedef struct _zend_string zend_string; /* zend_accel_hash - is a hash table allocated in shared memory and From de8db1b1fa7e81832ac43e37a8e8cffcdf26f699 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 4 Jan 2023 21:56:30 +0100 Subject: [PATCH 15/22] Zend/zend_bitset: include cleanup --- Zend/zend_bitset.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Zend/zend_bitset.h b/Zend/zend_bitset.h index fdb6ab79a1e86..0a573852a49ad 100644 --- a/Zend/zend_bitset.h +++ b/Zend/zend_bitset.h @@ -19,6 +19,13 @@ #ifndef _ZEND_BITSET_H_ #define _ZEND_BITSET_H_ +#include "zend_portability.h" // for zend_always_inline + +#include "zend_long.h" + +#include +#include + typedef zend_ulong *zend_bitset; #define ZEND_BITSET_ELM_SIZE sizeof(zend_ulong) From 18b168b314d1eee396ba1d7cff2730c5ba70b85c Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 4 Jan 2023 21:55:34 +0100 Subject: [PATCH 16/22] Zend/Optimizer/scdf: include cleanup --- Zend/Optimizer/scdf.c | 3 ++- Zend/Optimizer/scdf.h | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Zend/Optimizer/scdf.c b/Zend/Optimizer/scdf.c index 54925e8287b62..fb7337a100998 100644 --- a/Zend/Optimizer/scdf.c +++ b/Zend/Optimizer/scdf.c @@ -16,8 +16,9 @@ +----------------------------------------------------------------------+ */ -#include "Optimizer/zend_optimizer_internal.h" #include "Optimizer/scdf.h" +#include "Optimizer/zend_optimizer_internal.h" +#include "zend_arena.h" /* This defines a generic framework for sparse conditional dataflow propagation. The algorithm is * based on "Sparse conditional constant propagation" by Wegman and Zadeck. We're using a diff --git a/Zend/Optimizer/scdf.h b/Zend/Optimizer/scdf.h index 840a99065bcb0..f72b2ca151ff8 100644 --- a/Zend/Optimizer/scdf.h +++ b/Zend/Optimizer/scdf.h @@ -20,6 +20,11 @@ #define _SCDF_H #include "zend_bitset.h" +#include "zend_long.h" +#include "zend_ssa.h" + +typedef struct _zend_op_array zend_op_array; +typedef struct _zend_optimizer_ctx zend_optimizer_ctx; typedef struct _scdf_ctx { zend_op_array *op_array; From 299c244c87247c9490a0e14d79b035cd20b4b91a Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 4 Jan 2023 21:55:37 +0100 Subject: [PATCH 17/22] Zend/Optimizer/dce: include cleanup --- Zend/Optimizer/dce.c | 1 + 1 file changed, 1 insertion(+) diff --git a/Zend/Optimizer/dce.c b/Zend/Optimizer/dce.c index 4aca34c943ca7..7bb5020c5a58e 100644 --- a/Zend/Optimizer/dce.c +++ b/Zend/Optimizer/dce.c @@ -22,6 +22,7 @@ #include "Optimizer/zend_ssa.h" #include "Optimizer/zend_func_info.h" #include "Optimizer/zend_call_graph.h" +#include "zend_arena.h" #include "zend_bitset.h" /* This pass implements a form of dead code elimination (DCE). The algorithm optimistically assumes From 0b89bedfb798564068e83ece731acbbb473c10f0 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 4 Jan 2023 22:18:07 +0100 Subject: [PATCH 18/22] Zend/Optimizer/sccp: include cleanup --- Zend/Optimizer/sccp.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Zend/Optimizer/sccp.c b/Zend/Optimizer/sccp.c index 9373ad2adc63d..45ae762737624 100644 --- a/Zend/Optimizer/sccp.c +++ b/Zend/Optimizer/sccp.c @@ -18,8 +18,11 @@ */ #include "zend_API.h" +#include "zend_arena.h" +#include "zend_multiply.h" // for zend_safe_address_guarded() #include "zend_exceptions.h" #include "zend_ini.h" +#include "zend_optimizer.h" #include "zend_type_info.h" #include "Optimizer/zend_optimizer_internal.h" #include "Optimizer/zend_call_graph.h" From ebbda1fc746105a407247e40f418cc17a27544be Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 4 Jan 2023 21:55:41 +0100 Subject: [PATCH 19/22] Zend/Optimizer/zend_call_graph: include cleanup --- Zend/Optimizer/zend_call_graph.c | 10 +++------- Zend/Optimizer/zend_call_graph.h | 5 +++-- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/Zend/Optimizer/zend_call_graph.c b/Zend/Optimizer/zend_call_graph.c index c2b7b00cbee13..70342c0654742 100644 --- a/Zend/Optimizer/zend_call_graph.c +++ b/Zend/Optimizer/zend_call_graph.c @@ -16,15 +16,11 @@ +----------------------------------------------------------------------+ */ -#include "zend_compile.h" -#include "zend_extensions.h" -#include "Optimizer/zend_optimizer.h" -#include "zend_optimizer_internal.h" -#include "zend_inference.h" #include "zend_call_graph.h" +#include "zend_arena.h" +#include "zend_bitset.h" #include "zend_func_info.h" -#include "zend_inference.h" -#include "zend_call_graph.h" +#include "zend_optimizer_internal.h" static void zend_op_array_calc(zend_op_array *op_array, void *context) { diff --git a/Zend/Optimizer/zend_call_graph.h b/Zend/Optimizer/zend_call_graph.h index 5b1634d561dc3..7dd6430dd4e88 100644 --- a/Zend/Optimizer/zend_call_graph.h +++ b/Zend/Optimizer/zend_call_graph.h @@ -20,8 +20,9 @@ #define ZEND_CALL_GRAPH_H #include "zend_ssa.h" -#include "zend_func_info.h" -#include "zend_optimizer.h" + +typedef struct _zend_func_info zend_func_info; +typedef struct _zend_call_info zend_call_info; typedef struct _zend_send_arg_info { zend_op *opline; From 16ed908b0089924e4f222e35ea9ea8dfa25eaadd Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 4 Jan 2023 22:15:15 +0100 Subject: [PATCH 20/22] Zend/zend_inference: include cleanup --- Zend/Optimizer/zend_inference.c | 8 +++++--- Zend/Optimizer/zend_inference.h | 9 ++++----- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/Zend/Optimizer/zend_inference.c b/Zend/Optimizer/zend_inference.c index 1aeaa02f7b3d8..532e8985688d0 100644 --- a/Zend/Optimizer/zend_inference.c +++ b/Zend/Optimizer/zend_inference.c @@ -16,13 +16,15 @@ +----------------------------------------------------------------------+ */ -#include "zend_compile.h" -#include "zend_generators.h" #include "zend_inference.h" +#include "zend_closures.h" // for zend_ce_closure +#include "zend_generators.h" // for zend_ce_generator #include "zend_func_info.h" +#include "zend_globals.h" // struct _zend_executor_globals +#include "zend_globals_macros.h" // for EG() #include "zend_call_graph.h" -#include "zend_closures.h" #include "zend_worklist.h" +#include "zend_optimizer.h" #include "zend_optimizer_internal.h" /* The used range inference algorithm is described in: diff --git a/Zend/Optimizer/zend_inference.h b/Zend/Optimizer/zend_inference.h index f27c5ecdc485b..65b48ee6a8697 100644 --- a/Zend/Optimizer/zend_inference.h +++ b/Zend/Optimizer/zend_inference.h @@ -19,12 +19,11 @@ #ifndef ZEND_INFERENCE_H #define ZEND_INFERENCE_H -#include "zend_optimizer.h" +#include "zend_cfg.h" // for CRT_CONSTANT() +#include "zend_compile.h" // for struct _zend_op +#include "zend_portability.h" // for BEGIN_EXTERN_C #include "zend_ssa.h" -#include "zend_bitset.h" - -/* Bitmask for type inference (zend_ssa_var_info.type) */ -#include "zend_type_info.h" +#include "zend_type_info.h" // for MAY_BE_* #define MAY_BE_PACKED_GUARD (1<<27) /* needs packed array guard */ #define MAY_BE_CLASS_GUARD (1<<27) /* needs class guard */ From feefca4a6e9e3e4926bcdcaf974cffc0b4771713 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 4 Jan 2023 09:25:22 +0100 Subject: [PATCH 21/22] Zend/zend_map_ptr: include cleanup --- Zend/zend_map_ptr.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Zend/zend_map_ptr.h b/Zend/zend_map_ptr.h index aa726e0cdd32d..0ab1a357eecfb 100644 --- a/Zend/zend_map_ptr.h +++ b/Zend/zend_map_ptr.h @@ -19,7 +19,7 @@ #ifndef ZEND_MAP_PTR_H #define ZEND_MAP_PTR_H -#include "zend_portability.h" +#include "zend_portability.h" // for BEGIN_EXTERN_C #define ZEND_MAP_PTR_KIND_PTR 0 #define ZEND_MAP_PTR_KIND_PTR_OR_OFFSET 1 @@ -69,6 +69,8 @@ # error "Unknown ZEND_MAP_PTR_KIND" #endif +typedef struct _zend_string zend_string; + BEGIN_EXTERN_C() ZEND_API void zend_map_ptr_reset(void); From e79e50492c8b5ed67561ee944b0a18c14fbc8859 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 4 Jan 2023 09:38:38 +0100 Subject: [PATCH 22/22] Zend/zend_types: include cleanup --- Zend/zend_types.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Zend/zend_types.h b/Zend/zend_types.h index df64541749d4c..1b1f804a3c75b 100644 --- a/Zend/zend_types.h +++ b/Zend/zend_types.h @@ -24,6 +24,8 @@ #include "zend_portability.h" #include "zend_long.h" +#include "zend_type_info.h" // for MAY_BE_* + #include #ifdef __SSE2__