Skip to content

isl: tag unreachable path as such

Eric Engestrom requested to merge eric/mesa:isl-unreachable into master

GCC should be able to figure out that all the possible enum values are exhausted in the switch() and all the branches return from the function, but apparently it doesn't, so let's tell the compiler explicitly.

This gets rid of the following warnings in GCC 9:

[1/24] Compiling C object 'src/intel/isl/60d23f8@@isl@sta/isl.c.o'.
../src/intel/isl/isl.c: In function ‘isl_surf_init_s’:
../src/intel/isl/isl.c:1569:10: warning: ‘array_pitch_el_rows’ may be used uninitialized in this function [-Wmaybe-uninitialized]
 1569 |    *surf = (struct isl_surf) {
      |    ~~~~~~^~~~~~~~~~~~~~~~~~~~~
 1570 |       .dim = info->dim,
      |       ~~~~~~~~~~~~~~~~~
 1571 |       .dim_layout = dim_layout,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |       .msaa_layout = msaa_layout,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |       .tiling = tiling,
      |       ~~~~~~~~~~~~~~~~~
 1574 |       .format = info->format,
      |       ~~~~~~~~~~~~~~~~~~~~~~~
 1575 |
      |
 1576 |       .levels = info->levels,
      |       ~~~~~~~~~~~~~~~~~~~~~~~
 1577 |       .samples = info->samples,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |
      |
 1579 |       .image_alignment_el = image_align_el,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |       .logical_level0_px = logical_level0_px,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |       .phys_level0_sa = phys_level0_sa,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |
      |
 1583 |       .size_B = size_B,
      |       ~~~~~~~~~~~~~~~~~
 1584 |       .alignment_B = base_alignment_B,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |       .row_pitch_B = row_pitch_B,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |       .array_pitch_el_rows = array_pitch_el_rows,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |       .array_pitch_span = array_pitch_span,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |
      |
 1589 |       .usage = info->usage,
      |       ~~~~~~~~~~~~~~~~~~~~~
 1590 |    };
      |    ~
../src/intel/isl/isl.c:1488:24: warning: ‘*((void *)&phys_total_el+4)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
 1488 |    struct isl_extent2d phys_total_el;
      |                        ^~~~~~~~~~~~~
../src/intel/isl/isl.c:1335:38: warning: ‘phys_total_el’ may be used uninitialized in this function [-Wmaybe-uninitialized]
 1335 |       isl_align_div(phys_total_el->w * tile_el_scale,
      |                     ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
../src/intel/isl/isl.c:1488:24: note: ‘phys_total_el’ was declared here
 1488 |    struct isl_extent2d phys_total_el;
      |                        ^~~~~~~~~~~~~

Merge request reports