Skip to content

Commit 9fb5cfd

Browse files
committed
Fixed warning of no return in non-void funciton
1 parent 359d91a commit 9fb5cfd

File tree

3 files changed

+18
-0
lines changed

3 files changed

+18
-0
lines changed

Zend/zend_vm_def.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1330,6 +1330,7 @@ ZEND_VM_HANDLER(96, ZEND_FETCH_DIM_UNSET, VAR|CV, CONST|TMP|VAR|CV)
13301330
FREE_OP1_VAR_PTR();
13311331
if (UNEXPECTED(EX_T(opline->result.var).var.ptr_ptr == NULL)) {
13321332
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
1333+
ZEND_VM_NEXT_OPCODE();
13331334
} else {
13341335
zend_free_op free_res;
13351336
zval **retval_ptr = EX_T(opline->result.var).var.ptr_ptr;
@@ -2757,6 +2758,7 @@ ZEND_VM_HANDLER(59, ZEND_INIT_FCALL_BY_NAME, ANY, CONST|TMP|VAR|CV)
27572758
ZEND_VM_NEXT_OPCODE();
27582759
} else {
27592760
zend_error_noreturn(E_ERROR, "Function name must be a string");
2761+
ZEND_VM_NEXT_OPCODE(); /* Never reached */
27602762
}
27612763
}
27622764
}

Zend/zend_vm_execute.h

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1339,6 +1339,7 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_CONST_HANDLER(ZEND_OPCODE
13391339
ZEND_VM_NEXT_OPCODE();
13401340
} else {
13411341
zend_error_noreturn(E_ERROR, "Function name must be a string");
1342+
ZEND_VM_NEXT_OPCODE(); /* Never reached */
13421343
}
13431344
}
13441345
}
@@ -1659,6 +1660,7 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_TMP_HANDLER(ZEND_OPCODE_H
16591660
ZEND_VM_NEXT_OPCODE();
16601661
} else {
16611662
zend_error_noreturn(E_ERROR, "Function name must be a string");
1663+
ZEND_VM_NEXT_OPCODE(); /* Never reached */
16621664
}
16631665
}
16641666
}
@@ -1839,6 +1841,7 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_VAR_HANDLER(ZEND_OPCODE_H
18391841
ZEND_VM_NEXT_OPCODE();
18401842
} else {
18411843
zend_error_noreturn(E_ERROR, "Function name must be a string");
1844+
ZEND_VM_NEXT_OPCODE(); /* Never reached */
18421845
}
18431846
}
18441847
}
@@ -2054,6 +2057,7 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_CV_HANDLER(ZEND_OPCODE_HA
20542057
ZEND_VM_NEXT_OPCODE();
20552058
} else {
20562059
zend_error_noreturn(E_ERROR, "Function name must be a string");
2060+
ZEND_VM_NEXT_OPCODE(); /* Never reached */
20572061
}
20582062
}
20592063
}
@@ -14882,6 +14886,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_VAR_CONST_HANDLER(ZEND_OPCOD
1488214886
if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
1488314887
if (UNEXPECTED(EX_T(opline->result.var).var.ptr_ptr == NULL)) {
1488414888
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
14889+
ZEND_VM_NEXT_OPCODE();
1488514890
} else {
1488614891
zend_free_op free_res;
1488714892
zval **retval_ptr = EX_T(opline->result.var).var.ptr_ptr;
@@ -17219,6 +17224,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_
1721917224
if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
1722017225
if (UNEXPECTED(EX_T(opline->result.var).var.ptr_ptr == NULL)) {
1722117226
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
17227+
ZEND_VM_NEXT_OPCODE();
1722217228
} else {
1722317229
zend_free_op free_res;
1722417230
zval **retval_ptr = EX_T(opline->result.var).var.ptr_ptr;
@@ -19470,6 +19476,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_
1947019476
if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
1947119477
if (UNEXPECTED(EX_T(opline->result.var).var.ptr_ptr == NULL)) {
1947219478
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
19479+
ZEND_VM_NEXT_OPCODE();
1947319480
} else {
1947419481
zend_free_op free_res;
1947519482
zval **retval_ptr = EX_T(opline->result.var).var.ptr_ptr;
@@ -22915,6 +22922,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_H
2291522922
if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
2291622923
if (UNEXPECTED(EX_T(opline->result.var).var.ptr_ptr == NULL)) {
2291722924
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
22925+
ZEND_VM_NEXT_OPCODE();
2291822926
} else {
2291922927
zend_free_op free_res;
2292022928
zval **retval_ptr = EX_T(opline->result.var).var.ptr_ptr;
@@ -32299,6 +32307,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_CV_CONST_HANDLER(ZEND_OPCODE
3229932307

3230032308
if (UNEXPECTED(EX_T(opline->result.var).var.ptr_ptr == NULL)) {
3230132309
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
32310+
ZEND_VM_NEXT_OPCODE();
3230232311
} else {
3230332312
zend_free_op free_res;
3230432313
zval **retval_ptr = EX_T(opline->result.var).var.ptr_ptr;
@@ -34411,6 +34420,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_H
3441134420

3441234421
if (UNEXPECTED(EX_T(opline->result.var).var.ptr_ptr == NULL)) {
3441334422
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
34423+
ZEND_VM_NEXT_OPCODE();
3441434424
} else {
3441534425
zend_free_op free_res;
3441634426
zval **retval_ptr = EX_T(opline->result.var).var.ptr_ptr;
@@ -36529,6 +36539,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_H
3652936539

3653036540
if (UNEXPECTED(EX_T(opline->result.var).var.ptr_ptr == NULL)) {
3653136541
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
36542+
ZEND_VM_NEXT_OPCODE();
3653236543
} else {
3653336544
zend_free_op free_res;
3653436545
zval **retval_ptr = EX_T(opline->result.var).var.ptr_ptr;
@@ -39697,6 +39708,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HA
3969739708

3969839709
if (UNEXPECTED(EX_T(opline->result.var).var.ptr_ptr == NULL)) {
3969939710
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
39711+
ZEND_VM_NEXT_OPCODE();
3970039712
} else {
3970139713
zend_free_op free_res;
3970239714
zval **retval_ptr = EX_T(opline->result.var).var.ptr_ptr;
@@ -40810,6 +40822,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS
4081040822
static int ZEND_FASTCALL ZEND_NULL_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
4081140823
{
4081240824
zend_error_noreturn(E_ERROR, "Invalid opcode %d/%d/%d.", OPLINE->opcode, OPLINE->op1_type, OPLINE->op2_type);
40825+
ZEND_VM_NEXT_OPCODE(); /* Never reached */
4081340826
}
4081440827

4081540828

Zend/zend_vm_gen.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -710,6 +710,7 @@ function gen_null_handler($f) {
710710
out($f,"static int ZEND_FASTCALL ZEND_NULL_HANDLER(ZEND_OPCODE_HANDLER_ARGS)\n");
711711
out($f,"{\n");
712712
out($f,"\tzend_error_noreturn(E_ERROR, \"Invalid opcode %d/%d/%d.\", OPLINE->opcode, OPLINE->op1_type, OPLINE->op2_type);\n");
713+
out($f,"\tZEND_VM_NEXT_OPCODE(); /* Never reached */\n");
713714
out($f,"}\n\n");
714715
}
715716
}
@@ -784,10 +785,12 @@ function gen_executor_code($f, $spec, $kind, $prolog) {
784785
case ZEND_VM_KIND_SWITCH:
785786
out($f,"default:\n");
786787
out($f,"\tzend_error_noreturn(E_ERROR, \"Invalid opcode %d/%d/%d.\", OPLINE->opcode, OPLINE->op1_type, OPLINE->op2_type);\n");
788+
out($f,"\tZEND_VM_NEXT_OPCODE(); /* Never reached */\n");
787789
break;
788790
case ZEND_VM_KIND_GOTO:
789791
out($f,"ZEND_NULL_HANDLER:\n");
790792
out($f,"\tzend_error_noreturn(E_ERROR, \"Invalid opcode %d/%d/%d.\", OPLINE->opcode, OPLINE->op1_type, OPLINE->op2_type);\n");
793+
out($f,"\tZEND_VM_NEXT_OPCODE(); /* Never reached */\n");
791794
break;
792795
}
793796
}

0 commit comments

Comments
 (0)