Skip to content

Commit a1d4416

Browse files
committed
Fix [-Wimplicit-fallthrough] warnings in SPL extension
1 parent 815684d commit a1d4416

File tree

3 files changed

+18
-10
lines changed

3 files changed

+18
-10
lines changed

ext/spl/spl_array.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -369,12 +369,14 @@ static zval *spl_array_get_dimension_ptr(int check_inherited, spl_array_object *
369369
switch (type) {
370370
case BP_VAR_R:
371371
zend_error(E_WARNING, "Undefined array key \"%s\"", ZSTR_VAL(key.key));
372+
fallthrough;
372373
case BP_VAR_UNSET:
373374
case BP_VAR_IS:
374375
retval = &EG(uninitialized_zval);
375376
break;
376377
case BP_VAR_RW:
377378
zend_error(E_WARNING,"Undefined array key \"%s\"", ZSTR_VAL(key.key));
379+
fallthrough;
378380
case BP_VAR_W: {
379381
ZVAL_NULL(retval);
380382
}
@@ -385,12 +387,14 @@ static zval *spl_array_get_dimension_ptr(int check_inherited, spl_array_object *
385387
switch (type) {
386388
case BP_VAR_R:
387389
zend_error(E_WARNING, "Undefined array key \"%s\"", ZSTR_VAL(key.key));
390+
fallthrough;
388391
case BP_VAR_UNSET:
389392
case BP_VAR_IS:
390393
retval = &EG(uninitialized_zval);
391394
break;
392395
case BP_VAR_RW:
393396
zend_error(E_WARNING,"Undefined array key \"%s\"", ZSTR_VAL(key.key));
397+
fallthrough;
394398
case BP_VAR_W: {
395399
zval value;
396400
ZVAL_NULL(&value);
@@ -404,12 +408,14 @@ static zval *spl_array_get_dimension_ptr(int check_inherited, spl_array_object *
404408
switch (type) {
405409
case BP_VAR_R:
406410
zend_error(E_WARNING, "Undefined array key " ZEND_LONG_FMT, key.h);
411+
fallthrough;
407412
case BP_VAR_UNSET:
408413
case BP_VAR_IS:
409414
retval = &EG(uninitialized_zval);
410415
break;
411416
case BP_VAR_RW:
412417
zend_error(E_WARNING, "Undefined array key " ZEND_LONG_FMT, key.h);
418+
fallthrough;
413419
case BP_VAR_W: {
414420
zval value;
415421
ZVAL_UNDEF(&value);

ext/spl/spl_directory.c

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2345,21 +2345,21 @@ PHP_METHOD(SplFileObject, fgetcsv)
23452345
} else {
23462346
escape = (unsigned char) esc[0];
23472347
}
2348-
/* no break */
2348+
fallthrough;
23492349
case 2:
23502350
if (e_len != 1) {
23512351
zend_argument_value_error(2, "must be a single character");
23522352
RETURN_THROWS();
23532353
}
23542354
enclosure = enclo[0];
2355-
/* no break */
2355+
fallthrough;
23562356
case 1:
23572357
if (d_len != 1) {
23582358
zend_argument_value_error(1, "must be a single character");
23592359
RETURN_THROWS();
23602360
}
23612361
delimiter = delim[0];
2362-
/* no break */
2362+
fallthrough;
23632363
case 0:
23642364
break;
23652365
}
@@ -2395,21 +2395,21 @@ PHP_METHOD(SplFileObject, fputcsv)
23952395
zend_argument_value_error(4, "must be empty or a single character");
23962396
RETURN_THROWS();
23972397
}
2398-
/* no break */
2398+
fallthrough;
23992399
case 3:
24002400
if (e_len != 1) {
24012401
zend_argument_value_error(3, "must be a single character");
24022402
RETURN_THROWS();
24032403
}
24042404
enclosure = enclo[0];
2405-
/* no break */
2405+
fallthrough;
24062406
case 2:
24072407
if (d_len != 1) {
24082408
zend_argument_value_error(2, "must be a single character");
24092409
RETURN_THROWS();
24102410
}
24112411
delimiter = delim[0];
2412-
/* no break */
2412+
fallthrough;
24132413
case 1:
24142414
case 0:
24152415
break;
@@ -2447,21 +2447,21 @@ PHP_METHOD(SplFileObject, setCsvControl)
24472447
zend_argument_value_error(3, "must be empty or a single character");
24482448
RETURN_THROWS();
24492449
}
2450-
/* no break */
2450+
fallthrough;
24512451
case 2:
24522452
if (e_len != 1) {
24532453
zend_argument_value_error(2, "must be a single character");
24542454
RETURN_THROWS();
24552455
}
24562456
enclosure = enclo[0];
2457-
/* no break */
2457+
fallthrough;
24582458
case 1:
24592459
if (d_len != 1) {
24602460
zend_argument_value_error(1, "must be a single character");
24612461
RETURN_THROWS();
24622462
}
24632463
delimiter = delim[0];
2464-
/* no break */
2464+
fallthrough;
24652465
case 0:
24662466
break;
24672467
}

ext/spl/spl_iterators.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,13 +243,15 @@ static void spl_recursive_it_move_forward_ex(spl_recursive_it_object *object, zv
243243
zend_clear_exception();
244244
}
245245
}
246-
/* fall through */
246+
fallthrough;
247247
case RS_START:
248248
if (iterator->funcs->valid(iterator) == FAILURE) {
249249
break;
250250
}
251251
object->iterators[object->level].state = RS_TEST;
252252
/* break; */
253+
/* TODO: Check this is correct */
254+
fallthrough;
253255
case RS_TEST:
254256
ce = object->iterators[object->level].ce;
255257
zobject = &object->iterators[object->level].zobject;

0 commit comments

Comments
 (0)