Skip to content

Commit c44a2fc

Browse files
committed
Zend/zend_execute.c: mark error functions as zend_never_inline
For consistency with other functions
1 parent 7c1b005 commit c44a2fc

File tree

2 files changed

+41
-41
lines changed

2 files changed

+41
-41
lines changed

Zend/zend_execute.c

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -605,7 +605,7 @@ static zend_never_inline ZEND_COLD zval *zend_wrong_assign_to_variable_reference
605605
return zend_assign_to_variable_ex(variable_ptr, value_ptr, IS_TMP_VAR, EX_USES_STRICT_TYPES(), garbage_ptr);
606606
}
607607

608-
ZEND_API ZEND_COLD void ZEND_FASTCALL zend_cannot_pass_by_reference(uint32_t arg_num)
608+
ZEND_API zend_never_inline ZEND_COLD void ZEND_FASTCALL zend_cannot_pass_by_reference(uint32_t arg_num)
609609
{
610610
const zend_execute_data *execute_data = EG(current_execute_data);
611611
zend_string *func_name = get_function_or_method_name(EX(call)->func);
@@ -681,7 +681,7 @@ static zend_never_inline ZEND_COLD void ZEND_FASTCALL zend_throw_non_object_erro
681681
}
682682
}
683683

684-
static ZEND_COLD void zend_verify_type_error_common(
684+
static zend_never_inline ZEND_COLD void zend_verify_type_error_common(
685685
const zend_function *zf, const zend_arg_info *arg_info, const zval *value,
686686
const char **fname, const char **fsep, const char **fclass,
687687
zend_string **need_msg, const char **given_kind)
@@ -704,7 +704,7 @@ static ZEND_COLD void zend_verify_type_error_common(
704704
}
705705
}
706706

707-
ZEND_API ZEND_COLD void zend_verify_arg_error(
707+
ZEND_API zend_never_inline ZEND_COLD void zend_verify_arg_error(
708708
const zend_function *zf, const zend_arg_info *arg_info, uint32_t arg_num, const zval *value)
709709
{
710710
const zend_execute_data *ptr = EG(current_execute_data)->prev_execute_data;
@@ -881,7 +881,7 @@ static ZEND_COLD zend_never_inline void zend_magic_get_property_type_inconsisten
881881
zend_string_release(type_str);
882882
}
883883

884-
ZEND_COLD void zend_match_unhandled_error(const zval *value)
884+
ZEND_COLD zend_never_inline void zend_match_unhandled_error(const zval *value)
885885
{
886886
zend_long max_len = EG(exception_string_param_max_len);
887887
smart_str msg = {0};
@@ -901,35 +901,35 @@ ZEND_COLD void zend_match_unhandled_error(const zval *value)
901901
smart_str_free(&msg);
902902
}
903903

904-
ZEND_API ZEND_COLD void ZEND_FASTCALL zend_readonly_property_modification_error(
904+
ZEND_API ZEND_COLD zend_never_inline void ZEND_FASTCALL zend_readonly_property_modification_error(
905905
const zend_property_info *info) {
906906
zend_readonly_property_modification_error_ex(
907907
ZSTR_VAL(info->ce->name), zend_get_unmangled_property_name(info->name));
908908
}
909909

910-
ZEND_API ZEND_COLD void ZEND_FASTCALL zend_readonly_property_modification_error_ex(
910+
ZEND_API ZEND_COLD zend_never_inline void ZEND_FASTCALL zend_readonly_property_modification_error_ex(
911911
const char *class_name, const char *prop_name) {
912912
zend_throw_error(NULL, "Cannot modify readonly property %s::$%s", class_name, prop_name);
913913
}
914914

915-
ZEND_API ZEND_COLD void ZEND_FASTCALL zend_readonly_property_indirect_modification_error(const zend_property_info *info)
915+
ZEND_API ZEND_COLD zend_never_inline void ZEND_FASTCALL zend_readonly_property_indirect_modification_error(const zend_property_info *info)
916916
{
917917
zend_throw_error(NULL, "Cannot indirectly modify readonly property %s::$%s",
918918
ZSTR_VAL(info->ce->name), zend_get_unmangled_property_name(info->name));
919919
}
920920

921-
ZEND_API ZEND_COLD void ZEND_FASTCALL zend_invalid_class_constant_type_error(const uint8_t type)
921+
ZEND_API ZEND_COLD zend_never_inline void ZEND_FASTCALL zend_invalid_class_constant_type_error(const uint8_t type)
922922
{
923923
zend_type_error("Cannot use value of type %s as class constant name", zend_get_type_by_const(type));
924924
}
925925

926-
ZEND_API ZEND_COLD void ZEND_FASTCALL zend_object_released_while_assigning_to_property_error(const zend_property_info *info)
926+
ZEND_API ZEND_COLD zend_never_inline void ZEND_FASTCALL zend_object_released_while_assigning_to_property_error(const zend_property_info *info)
927927
{
928928
zend_throw_error(NULL, "Object was released while assigning to property %s::$%s",
929929
ZSTR_VAL(info->ce->name), zend_get_unmangled_property_name(info->name));
930930
}
931931

932-
ZEND_API ZEND_COLD void ZEND_FASTCALL zend_asymmetric_visibility_property_modification_error(
932+
ZEND_API ZEND_COLD zend_never_inline void ZEND_FASTCALL zend_asymmetric_visibility_property_modification_error(
933933
const zend_property_info *prop_info, const char *operation
934934
) {
935935
const zend_class_entry *scope;
@@ -1322,7 +1322,7 @@ ZEND_API bool zend_internal_call_should_throw(const zend_function *fbc, zend_exe
13221322
return 0;
13231323
}
13241324

1325-
ZEND_API ZEND_COLD void zend_internal_call_arginfo_violation(const zend_function *fbc)
1325+
ZEND_API ZEND_COLD zend_never_inline void zend_internal_call_arginfo_violation(const zend_function *fbc)
13261326
{
13271327
zend_error_noreturn(E_ERROR, "Arginfo / zpp mismatch during call of %s%s%s()",
13281328
fbc->common.scope ? ZSTR_VAL(fbc->common.scope->name) : "",
@@ -1393,7 +1393,7 @@ static void zend_verify_internal_func_info(const zend_function *fn, const zval *
13931393
}
13941394
#endif
13951395

1396-
ZEND_API ZEND_COLD void ZEND_FASTCALL zend_missing_arg_error(const zend_execute_data *execute_data)
1396+
ZEND_API ZEND_COLD zend_never_inline void ZEND_FASTCALL zend_missing_arg_error(const zend_execute_data *execute_data)
13971397
{
13981398
const zend_execute_data *ptr = EX(prev_execute_data);
13991399

@@ -1418,7 +1418,7 @@ ZEND_API ZEND_COLD void ZEND_FASTCALL zend_missing_arg_error(const zend_execute_
14181418
}
14191419
}
14201420

1421-
ZEND_API ZEND_COLD void zend_verify_return_error(const zend_function *zf, const zval *value)
1421+
ZEND_API ZEND_COLD zend_never_inline void zend_verify_return_error(const zend_function *zf, const zval *value)
14221422
{
14231423
const zend_arg_info *arg_info = &zf->common.arg_info[-1];
14241424
const char *fname, *fsep, *fclass;
@@ -1434,7 +1434,7 @@ ZEND_API ZEND_COLD void zend_verify_return_error(const zend_function *zf, const
14341434
zend_string_release(need_msg);
14351435
}
14361436

1437-
ZEND_API ZEND_COLD void zend_verify_never_error(const zend_function *zf)
1437+
ZEND_API ZEND_COLD zend_never_inline void zend_verify_never_error(const zend_function *zf)
14381438
{
14391439
zend_string *func_name = get_function_or_method_name(zf);
14401440

@@ -1445,7 +1445,7 @@ ZEND_API ZEND_COLD void zend_verify_never_error(const zend_function *zf)
14451445
}
14461446

14471447
#if ZEND_DEBUG
1448-
static ZEND_COLD void zend_verify_internal_return_error(const zend_function *zf, const zval *value)
1448+
static ZEND_COLD zend_never_inline void zend_verify_internal_return_error(const zend_function *zf, const zval *value)
14491449
{
14501450
const zend_arg_info *arg_info = &zf->common.arg_info[-1];
14511451
const char *fname, *fsep, *fclass;
@@ -1459,7 +1459,7 @@ static ZEND_COLD void zend_verify_internal_return_error(const zend_function *zf,
14591459
fclass, fsep, fname, ZSTR_VAL(need_msg), given_msg);
14601460
}
14611461

1462-
static ZEND_COLD void zend_verify_void_return_error(const zend_function *zf, const char *returned_msg, const char *returned_kind)
1462+
static ZEND_COLD zend_never_inline void zend_verify_void_return_error(const zend_function *zf, const char *returned_msg, const char *returned_kind)
14631463
{
14641464
const char *fname = ZSTR_VAL(zf->common.function_name);
14651465
const char *fsep;
@@ -1498,7 +1498,7 @@ ZEND_API bool zend_verify_internal_return_type(const zend_function *zf, zval *re
14981498
}
14991499
#endif
15001500

1501-
static ZEND_COLD void zend_verify_missing_return_type(const zend_function *zf)
1501+
static ZEND_COLD zend_never_inline void zend_verify_missing_return_type(const zend_function *zf)
15021502
{
15031503
/* VERIFY_RETURN_TYPE is not emitted for "void" functions, so this is always an error. */
15041504
zend_verify_return_error(zf, NULL);
@@ -1755,7 +1755,7 @@ static zend_never_inline zend_long zend_check_string_offset(const zval *dim, int
17551755
return zval_get_long_func(dim, /* is_strict */ false);
17561756
}
17571757

1758-
ZEND_API ZEND_COLD void zend_wrong_string_offset_error(void)
1758+
ZEND_API ZEND_COLD zend_never_inline void zend_wrong_string_offset_error(void)
17591759
{
17601760
const char *msg = NULL;
17611761
const zend_execute_data *execute_data = EG(current_execute_data);
@@ -2185,7 +2185,7 @@ static zend_property_info *zend_get_prop_not_accepting_double(zend_reference *re
21852185
return NULL;
21862186
}
21872187

2188-
static ZEND_COLD zend_long zend_throw_incdec_ref_error(const zend_property_info *error_prop OPLINE_DC)
2188+
static ZEND_COLD zend_never_inline zend_long zend_throw_incdec_ref_error(const zend_property_info *error_prop OPLINE_DC)
21892189
{
21902190
zend_string *type_str = zend_type_to_string(error_prop->type);
21912191
if (ZEND_IS_INCREMENT(opline->opcode)) {
@@ -2207,7 +2207,7 @@ static ZEND_COLD zend_long zend_throw_incdec_ref_error(const zend_property_info
22072207
}
22082208
}
22092209

2210-
static ZEND_COLD zend_long zend_throw_incdec_prop_error(const zend_property_info *prop OPLINE_DC) {
2210+
static ZEND_COLD zend_never_inline zend_long zend_throw_incdec_prop_error(const zend_property_info *prop OPLINE_DC) {
22112211
zend_string *type_str = zend_type_to_string(prop->type);
22122212
if (ZEND_IS_INCREMENT(opline->opcode)) {
22132213
zend_type_error("Cannot increment property %s::$%s of type %s past its maximal value",
@@ -3426,7 +3426,7 @@ static zend_never_inline bool ZEND_FASTCALL zend_array_key_exists_fast(HashTable
34263426
}
34273427
}
34283428

3429-
static ZEND_COLD void ZEND_FASTCALL zend_array_key_exists_error(
3429+
static ZEND_COLD zend_never_inline void ZEND_FASTCALL zend_array_key_exists_error(
34303430
const zval *subject, const zval *key OPLINE_DC EXECUTE_DATA_DC)
34313431
{
34323432
if (Z_TYPE_P(key) == IS_UNDEF) {
@@ -3882,7 +3882,7 @@ ZEND_API zval* ZEND_FASTCALL zend_fetch_static_property(zend_execute_data *ex, i
38823882
return result;
38833883
}
38843884

3885-
ZEND_API ZEND_COLD void zend_throw_ref_type_error_type(const zend_property_info *prop1, const zend_property_info *prop2, const zval *zv) {
3885+
ZEND_API ZEND_COLD zend_never_inline void zend_throw_ref_type_error_type(const zend_property_info *prop1, const zend_property_info *prop2, const zval *zv) {
38863886
zend_string *type1_str = zend_type_to_string(prop1->type);
38873887
zend_string *type2_str = zend_type_to_string(prop2->type);
38883888
zend_type_error("Reference with value of type %s held by property %s::$%s of type %s is not compatible with property %s::$%s of type %s",
@@ -3898,7 +3898,7 @@ ZEND_API ZEND_COLD void zend_throw_ref_type_error_type(const zend_property_info
38983898
zend_string_release(type2_str);
38993899
}
39003900

3901-
ZEND_API ZEND_COLD void zend_throw_ref_type_error_zval(const zend_property_info *prop, const zval *zv) {
3901+
ZEND_API ZEND_COLD zend_never_inline void zend_throw_ref_type_error_zval(const zend_property_info *prop, const zval *zv) {
39023902
zend_string *type_str = zend_type_to_string(prop->type);
39033903
zend_type_error("Cannot assign %s to reference held by property %s::$%s of type %s",
39043904
zend_zval_value_name(zv),
@@ -3909,7 +3909,7 @@ ZEND_API ZEND_COLD void zend_throw_ref_type_error_zval(const zend_property_info
39093909
zend_string_release(type_str);
39103910
}
39113911

3912-
static ZEND_COLD void zend_throw_conflicting_coercion_error(const zend_property_info *prop1, const zend_property_info *prop2, const zval *zv) {
3912+
static ZEND_COLD zend_never_inline void zend_throw_conflicting_coercion_error(const zend_property_info *prop1, const zend_property_info *prop2, const zval *zv) {
39133913
zend_string *type1_str = zend_type_to_string(prop1->type);
39143914
zend_string *type2_str = zend_type_to_string(prop2->type);
39153915
zend_type_error("Cannot assign %s to reference held by property %s::$%s of type %s and property %s::$%s of type %s, as this would result in an inconsistent type conversion",

Zend/zend_execute.h

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ ZEND_API zend_result zend_eval_stringl_ex(const char *str, size_t str_len, zval
6161
/* export zend_pass_function to allow comparisons against it */
6262
extern ZEND_API const zend_internal_function zend_pass_function;
6363

64-
ZEND_API ZEND_COLD void ZEND_FASTCALL zend_missing_arg_error(const zend_execute_data *execute_data);
64+
ZEND_API ZEND_COLD zend_never_inline void ZEND_FASTCALL zend_missing_arg_error(const zend_execute_data *execute_data);
6565
ZEND_API ZEND_COLD void ZEND_FASTCALL zend_deprecated_function(const zend_function *fbc);
6666
ZEND_API ZEND_COLD void ZEND_FASTCALL zend_nodiscard_function(const zend_function *fbc);
6767
ZEND_API ZEND_COLD void ZEND_FASTCALL zend_deprecated_class_constant(const zend_class_constant *c, const zend_string *constant_name);
@@ -81,39 +81,39 @@ typedef enum {
8181
ZEND_API bool ZEND_FASTCALL zend_verify_prop_assignable_by_ref_ex(const zend_property_info *prop_info, zval *orig_val, bool strict, zend_verify_prop_assignable_by_ref_context context);
8282
ZEND_API bool ZEND_FASTCALL zend_verify_prop_assignable_by_ref(const zend_property_info *prop_info, zval *orig_val, bool strict);
8383

84-
ZEND_API ZEND_COLD void zend_throw_ref_type_error_zval(const zend_property_info *prop, const zval *zv);
85-
ZEND_API ZEND_COLD void zend_throw_ref_type_error_type(const zend_property_info *prop1, const zend_property_info *prop2, const zval *zv);
84+
ZEND_API ZEND_COLD zend_never_inline void zend_throw_ref_type_error_zval(const zend_property_info *prop, const zval *zv);
85+
ZEND_API ZEND_COLD zend_never_inline void zend_throw_ref_type_error_type(const zend_property_info *prop1, const zend_property_info *prop2, const zval *zv);
8686
ZEND_API ZEND_COLD zval* ZEND_FASTCALL zend_undefined_offset_write(HashTable *ht, zend_long lval);
8787
ZEND_API ZEND_COLD zval* ZEND_FASTCALL zend_undefined_index_write(HashTable *ht, zend_string *offset);
88-
ZEND_API ZEND_COLD void zend_wrong_string_offset_error(void);
88+
ZEND_API ZEND_COLD zend_never_inline void zend_wrong_string_offset_error(void);
8989

90-
ZEND_API ZEND_COLD void ZEND_FASTCALL zend_readonly_property_modification_error(const zend_property_info *info);
91-
ZEND_API ZEND_COLD void ZEND_FASTCALL zend_readonly_property_modification_error_ex(const char *class_name, const char *prop_name);
92-
ZEND_API ZEND_COLD void ZEND_FASTCALL zend_readonly_property_indirect_modification_error(const zend_property_info *info);
90+
ZEND_API ZEND_COLD zend_never_inline void ZEND_FASTCALL zend_readonly_property_modification_error(const zend_property_info *info);
91+
ZEND_API ZEND_COLD zend_never_inline void ZEND_FASTCALL zend_readonly_property_modification_error_ex(const char *class_name, const char *prop_name);
92+
ZEND_API ZEND_COLD zend_never_inline void ZEND_FASTCALL zend_readonly_property_indirect_modification_error(const zend_property_info *info);
9393

94-
ZEND_API ZEND_COLD void ZEND_FASTCALL zend_invalid_class_constant_type_error(uint8_t type);
94+
ZEND_API ZEND_COLD zend_never_inline void ZEND_FASTCALL zend_invalid_class_constant_type_error(uint8_t type);
9595

96-
ZEND_API ZEND_COLD void ZEND_FASTCALL zend_object_released_while_assigning_to_property_error(const zend_property_info *info);
96+
ZEND_API ZEND_COLD zend_never_inline void ZEND_FASTCALL zend_object_released_while_assigning_to_property_error(const zend_property_info *info);
9797

98-
ZEND_API ZEND_COLD void ZEND_FASTCALL zend_cannot_add_element(void);
98+
ZEND_API ZEND_COLD zend_never_inline void ZEND_FASTCALL zend_cannot_add_element(void);
9999

100100
ZEND_API bool ZEND_FASTCALL zend_asymmetric_property_has_set_access(const zend_property_info *prop_info);
101-
ZEND_API ZEND_COLD void ZEND_FASTCALL zend_asymmetric_visibility_property_modification_error(const zend_property_info *prop_info, const char *operation);
101+
ZEND_API ZEND_COLD zend_never_inline void ZEND_FASTCALL zend_asymmetric_visibility_property_modification_error(const zend_property_info *prop_info, const char *operation);
102102

103103
ZEND_API bool zend_verify_scalar_type_hint(uint32_t type_mask, zval *arg, bool strict, bool is_internal_arg);
104-
ZEND_API ZEND_COLD void zend_verify_arg_error(
104+
ZEND_API ZEND_COLD zend_never_inline void zend_verify_arg_error(
105105
const zend_function *zf, const zend_arg_info *arg_info, uint32_t arg_num, const zval *value);
106-
ZEND_API ZEND_COLD void zend_verify_return_error(
106+
ZEND_API ZEND_COLD zend_never_inline void zend_verify_return_error(
107107
const zend_function *zf, const zval *value);
108-
ZEND_API ZEND_COLD void zend_verify_never_error(
108+
ZEND_API ZEND_COLD zend_never_inline void zend_verify_never_error(
109109
const zend_function *zf);
110110
ZEND_API bool zend_verify_ref_array_assignable(zend_reference *ref);
111111
ZEND_API bool zend_check_user_type_slow(
112112
const zend_type *type, zval *arg, const zend_reference *ref, bool is_return_type);
113113

114114
#if ZEND_DEBUG
115115
ZEND_API bool zend_internal_call_should_throw(const zend_function *fbc, zend_execute_data *call);
116-
ZEND_API ZEND_COLD void zend_internal_call_arginfo_violation(const zend_function *fbc);
116+
ZEND_API ZEND_COLD zend_never_inline void zend_internal_call_arginfo_violation(const zend_function *fbc);
117117
ZEND_API bool zend_verify_internal_return_type(const zend_function *zf, zval *ret);
118118
#endif
119119

@@ -472,7 +472,7 @@ ZEND_API zend_string *zend_get_executed_filename_ex(void);
472472
ZEND_API uint32_t zend_get_executed_lineno(void);
473473
ZEND_API zend_class_entry *zend_get_executed_scope(void);
474474
ZEND_API bool zend_is_executing(void);
475-
ZEND_API ZEND_COLD void ZEND_FASTCALL zend_cannot_pass_by_reference(uint32_t arg_num);
475+
ZEND_API zend_never_inline ZEND_COLD void ZEND_FASTCALL zend_cannot_pass_by_reference(uint32_t arg_num);
476476

477477
ZEND_API void zend_set_timeout(zend_long seconds, bool reset_signals);
478478
ZEND_API void zend_unset_timeout(void);
@@ -616,7 +616,7 @@ ZEND_API bool zend_verify_property_type(const zend_property_info *info, zval *pr
616616
} \
617617
} while (0)
618618

619-
ZEND_COLD void zend_match_unhandled_error(const zval *value);
619+
ZEND_COLD zend_never_inline void zend_match_unhandled_error(const zval *value);
620620

621621
/* Call this to handle the timeout or the interrupt function. It will set
622622
* EG(vm_interrupt) to false.

0 commit comments

Comments
 (0)