Commit 6455aab46fd for php.net

commit 6455aab46fdaf4ee0e26f167f3b08b489786056d
Author: Daniel Scherzer <daniel.e.scherzer@gmail.com>
Date:   Fri Jul 17 13:34:49 2026 -0700

    Reflection: integer types cleanup

    Use `uint32_t` for values that are really `uint32_t`, like constant module
    numbers and the result from `zend_hash_num_elements()`. Use `uint32_t` for
    counting up, when values should never be negative. Adjust format specifiers to
    use `PRIu32` rather than `%d` for the uint32_t values.

diff --git a/ext/reflection/php_reflection.c b/ext/reflection/php_reflection.c
index 1c4e152d674..a15f2440431 100644
--- a/ext/reflection/php_reflection.c
+++ b/ext/reflection/php_reflection.c
@@ -375,7 +375,7 @@ static void _class_string(smart_str *str, zend_class_entry *ce, zval *obj, const

 	/* The information where a class is declared is only available for user classes */
 	if (ce->type == ZEND_USER_CLASS) {
-		smart_str_append_printf(str, "%s  @@ %s %d-%d\n", indent, ZSTR_VAL(ce->info.user.filename),
+		smart_str_append_printf(str, "%s  @@ %s %" PRIu32 "-%" PRIu32 "\n", indent, ZSTR_VAL(ce->info.user.filename),
 						ce->info.user.line_start, ce->info.user.line_end);
 	}

@@ -410,12 +410,12 @@ static void _class_string(smart_str *str, zend_class_entry *ce, zval *obj, const
 	// Enum cases go first, but the heading is only shown if there are any
 	if (enum_case_count) {
 		smart_str_appendc(str, '\n');
-		smart_str_append_printf(str, "%s  - Enum cases [%d] {\n", indent, enum_case_count);
+		smart_str_append_printf(str, "%s  - Enum cases [%" PRIu32 "] {\n", indent, enum_case_count);
 		smart_str_append_smart_str(str, &enum_case_str);
 		smart_str_append_printf(str, "%s  }\n", indent);
 	}
 	smart_str_appendc(str, '\n');
-	smart_str_append_printf(str, "%s  - Constants [%d] {\n", indent, constant_count);
+	smart_str_append_printf(str, "%s  - Constants [%" PRIu32 "] {\n", indent, constant_count);
 	smart_str_append_smart_str(str, &constant_str);
 	smart_str_append_printf(str, "%s  }\n", indent);

@@ -424,9 +424,9 @@ static void _class_string(smart_str *str, zend_class_entry *ce, zval *obj, const

 	/* Static properties */
 	/* counting static properties */
-	int count = zend_hash_num_elements(&ce->properties_info);
-	int count_static_props = 0;
-	int count_shadow_props = 0;
+	uint32_t count = zend_hash_num_elements(&ce->properties_info);
+	uint32_t count_static_props = 0;
+	uint32_t count_shadow_props = 0;
 	if (count > 0) {
 		ZEND_HASH_MAP_FOREACH_PTR(&ce->properties_info, zend_property_info *prop) {
 			if ((prop->flags & ZEND_ACC_PRIVATE) && prop->ce != ce) {
@@ -438,7 +438,7 @@ static void _class_string(smart_str *str, zend_class_entry *ce, zval *obj, const
 	}

 	/* static properties */
-	smart_str_append_printf(str, "\n%s  - Static properties [%d] {\n", indent, count_static_props);
+	smart_str_append_printf(str, "\n%s  - Static properties [%" PRIu32 "] {\n", indent, count_static_props);
 	if (count_static_props > 0) {
 		ZEND_HASH_MAP_FOREACH_PTR(&ce->properties_info, zend_property_info *prop) {
 			if ((prop->flags & ZEND_ACC_STATIC) && (!(prop->flags & ZEND_ACC_PRIVATE) || prop->ce == ce)) {
@@ -451,7 +451,7 @@ static void _class_string(smart_str *str, zend_class_entry *ce, zval *obj, const
 	/* Static methods */
 	/* counting static methods */
 	count = zend_hash_num_elements(&ce->function_table);
-	int count_static_funcs = 0;
+	uint32_t count_static_funcs = 0;
 	if (count > 0) {
 		ZEND_HASH_MAP_FOREACH_PTR(&ce->function_table, zend_function *mptr) {
 			if ((mptr->common.fn_flags & ZEND_ACC_STATIC)
@@ -463,7 +463,7 @@ static void _class_string(smart_str *str, zend_class_entry *ce, zval *obj, const
 	}

 	/* static methods */
-	smart_str_append_printf(str, "\n%s  - Static methods [%d] {", indent, count_static_funcs);
+	smart_str_append_printf(str, "\n%s  - Static methods [%" PRIu32 "] {", indent, count_static_funcs);
 	if (count_static_funcs > 0) {
 		ZEND_HASH_MAP_FOREACH_PTR(&ce->function_table, zend_function *mptr) {
 			if ((mptr->common.fn_flags & ZEND_ACC_STATIC)
@@ -480,7 +480,7 @@ static void _class_string(smart_str *str, zend_class_entry *ce, zval *obj, const

 	/* Default/Implicit properties */
 	count = zend_hash_num_elements(&ce->properties_info) - count_static_props - count_shadow_props;
-	smart_str_append_printf(str, "\n%s  - Properties [%d] {\n", indent, count);
+	smart_str_append_printf(str, "\n%s  - Properties [%" PRIu32 "] {\n", indent, count);
 	if (count > 0) {
 		ZEND_HASH_MAP_FOREACH_PTR(&ce->properties_info, zend_property_info *prop) {
 			if (!(prop->flags & ZEND_ACC_STATIC)
@@ -539,7 +539,7 @@ static void _class_string(smart_str *str, zend_class_entry *ce, zval *obj, const
 				_free_function(closure);
 			}
 		} ZEND_HASH_FOREACH_END();
-		smart_str_append_printf(str, "\n%s  - Methods [%d] {", indent, count);
+		smart_str_append_printf(str, "\n%s  - Methods [%" PRIu32 "] {", indent, count);
 		smart_str_append_smart_str(str, &method_str);
 		if (!count) {
 			smart_str_appendc(str, '\n');
@@ -749,7 +749,7 @@ static void format_default_value(smart_str *str, const zval *value) {
 /* {{{ _parameter_string */
 static void _parameter_string(smart_str *str, const zend_function *fptr, const struct _zend_arg_info *arg_info, uint32_t offset, bool required)
 {
-	smart_str_append_printf(str, "Parameter #%d [ ", offset);
+	smart_str_append_printf(str, "Parameter #%" PRIu32 " [ ", offset);
 	if (!required) {
 		smart_str_appends(str, "<optional> ");
 	} else {
@@ -806,7 +806,7 @@ static void _function_parameter_string(smart_str *str, const zend_function *fptr
 	uint32_t num_required = fptr->common.required_num_args;

 	smart_str_appendc(str, '\n');
-	smart_str_append_printf(str, "%s- Parameters [%d] {\n", indent, num_args);
+	smart_str_append_printf(str, "%s- Parameters [%" PRIu32 "] {\n", indent, num_args);
 	for (uint32_t i = 0; i < num_args; i++) {
 		smart_str_append_printf(str, "%s  ", indent);
 		_parameter_string(str, fptr, arg_info, i, i < num_required);
@@ -832,10 +832,10 @@ static void _function_closure_string(smart_str *str, const zend_function *fptr,
 	}

 	smart_str_appendc(str, '\n');
-	smart_str_append_printf(str, "%s- Bound Variables [%u] {\n", indent, count);
+	smart_str_append_printf(str, "%s- Bound Variables [%" PRIu32 "] {\n", indent, count);
 	uint32_t i = 0;
 	ZEND_HASH_MAP_FOREACH_STR_KEY(static_variables, const zend_string *key) {
-		smart_str_append_printf(str, "%s    Variable #%d [ $%s ]\n", indent, i++, ZSTR_VAL(key));
+		smart_str_append_printf(str, "%s    Variable #%" PRIu32 " [ $%s ]\n", indent, i++, ZSTR_VAL(key));
 	} ZEND_HASH_FOREACH_END();
 	smart_str_append_printf(str, "%s}\n", indent);
 }
@@ -929,7 +929,7 @@ static void _function_string(smart_str *str, const zend_function *fptr, const ze
 	smart_str_append_printf(str, "%s ] {\n", ZSTR_VAL(fptr->common.function_name));
 	/* The information where a function is declared is only available for user classes */
 	if (fptr->type == ZEND_USER_FUNCTION) {
-		smart_str_append_printf(str, "%s  @@ %s %d - %d\n", indent,
+		smart_str_append_printf(str, "%s  @@ %s %" PRIu32 " - %" PRIu32 "\n", indent,
 						ZSTR_VAL(fptr->op_array.filename),
 						fptr->op_array.line_start,
 						fptr->op_array.line_end);
@@ -1113,7 +1113,7 @@ static void _extension_ini_string(const zend_ini_entry *ini_entry, smart_str *st
 }
 /* }}} */

-static void _extension_class_string(zend_class_entry *ce, zend_string *key, smart_str *str, const char *indent, const zend_module_entry *module, int *num_classes) /* {{{ */
+static void _extension_class_string(zend_class_entry *ce, zend_string *key, smart_str *str, const char *indent, const zend_module_entry *module, uint32_t *num_classes) /* {{{ */
 {
 	if (ce->type == ZEND_INTERNAL_CLASS
 		&& ce->info.internal.module
@@ -1191,7 +1191,7 @@ static void _extension_string(smart_str *str, const zend_module_entry *module) /

 	{
 		smart_str str_constants = {0};
-		int num_constants = 0;
+		uint32_t num_constants = 0;

 		ZEND_HASH_MAP_FOREACH_PTR(EG(zend_constants), zend_constant *constant) {
 			if (ZEND_CONSTANT_MODULE_NUMBER(constant) == module->module_number) {
@@ -1201,7 +1201,7 @@ static void _extension_string(smart_str *str, const zend_module_entry *module) /
 		} ZEND_HASH_FOREACH_END();

 		if (num_constants) {
-			smart_str_append_printf(str, "\n  - Constants [%d] {\n", num_constants);
+			smart_str_append_printf(str, "\n  - Constants [%" PRIu32 "] {\n", num_constants);
 			smart_str_append_smart_str(str, &str_constants);
 			smart_str_appends(str, "  }\n");
 		}
@@ -1229,13 +1229,13 @@ static void _extension_string(smart_str *str, const zend_module_entry *module) /

 	{
 		smart_str str_classes = {0};
-		int num_classes = 0;
+		uint32_t num_classes = 0;

 		ZEND_HASH_MAP_FOREACH_STR_KEY_PTR(EG(class_table), zend_string *key, zend_class_entry *ce) {
 			_extension_class_string(ce, key, &str_classes, "    ", module, &num_classes);
 		} ZEND_HASH_FOREACH_END();
 		if (num_classes) {
-			smart_str_append_printf(str, "\n  - Classes [%d] {", num_classes);
+			smart_str_append_printf(str, "\n  - Classes [%" PRIu32 "] {", num_classes);
 			smart_str_append_smart_str(str, &str_classes);
 			smart_str_appends(str, "  }\n");
 		}
@@ -4961,7 +4961,7 @@ ZEND_METHOD(ReflectionClass, newInstance)
 		}

 		zval *params;
-		int num_args;
+		uint32_t num_args;
 		HashTable *named_params;
 		ZEND_PARSE_PARAMETERS_START(0, -1)
 			Z_PARAM_VARIADIC_WITH_NAMED(params, num_args, named_params)
@@ -5013,7 +5013,7 @@ ZEND_METHOD(ReflectionClass, newInstanceArgs)
 		RETURN_THROWS();
 	}

-	int argc = 0;
+	uint32_t argc = 0;
 	if (args) {
 		argc = zend_hash_num_elements(args);
 	}
@@ -7334,10 +7334,10 @@ ZEND_METHOD(ReflectionAttribute, __toString)

 	if (attr->data->argc > 0) {
 		smart_str_appends(&str, " {\n");
-		smart_str_append_printf(&str, "  - Arguments [%d] {\n", attr->data->argc);
+		smart_str_append_printf(&str, "  - Arguments [%" PRIu32 "] {\n", attr->data->argc);

 		for (uint32_t i = 0; i < attr->data->argc; i++) {
-			smart_str_append_printf(&str, "    Argument #%d [ ", i);
+			smart_str_append_printf(&str, "    Argument #%" PRIu32 " [ ", i);
 			if (attr->data->args[i].name != NULL) {
 				smart_str_append(&str, attr->data->args[i].name);
 				smart_str_appends(&str, " = ");
@@ -7984,7 +7984,7 @@ static void reflection_constant_find_ext(INTERNAL_FUNCTION_PARAMETERS, bool only
 	ZEND_PARSE_PARAMETERS_NONE();

 	GET_REFLECTION_OBJECT_PTR(const_);
-	int module_number = ZEND_CONSTANT_MODULE_NUMBER(const_);
+	uint32_t module_number = ZEND_CONSTANT_MODULE_NUMBER(const_);
 	if (module_number == PHP_USER_CONSTANT) {
 		// For user constants, ReflectionConstant::getExtension() returns null,
 		// ReflectionConstant::getExtensionName() returns false
@@ -8007,7 +8007,7 @@ static void reflection_constant_find_ext(INTERNAL_FUNCTION_PARAMETERS, bool only
 	zend_throw_exception_ex(
 		reflection_exception_ptr,
 		0,
-		"Unable to locate extension with module_number %d that provides constant %s",
+		"Unable to locate extension with module_number %" PRIu32 " that provides constant %s",
 		module_number,
 		ZSTR_VAL(const_->name)
 	);