[Mesa-dev] [PATCH] intel/compiler: Explicitly cast register type in switch

Ian Romanick idr at freedesktop.org
Thu Mar 29 18:32:17 UTC 2018


From: Ian Romanick <ian.d.romanick at intel.com>

brw_reg::type is "enum brw_reg_type type:4".  For whatever reason, GCC
is treating this as an int instead of an enum.  As a result, it doesn't
detect missing switch cases and it doesn't detect that flow can get out
of the switch.

This silences the warning:

src/intel/compiler/brw_reg.h: In function ‘bool brw_regs_negative_equal(const brw_reg*, const brw_reg*)’:
src/intel/compiler/brw_reg.h:305:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^

Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
---
 src/intel/compiler/brw_reg.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/intel/compiler/brw_reg.h b/src/intel/compiler/brw_reg.h
index 68158cc0cc8..62f76ac0fe0 100644
--- a/src/intel/compiler/brw_reg.h
+++ b/src/intel/compiler/brw_reg.h
@@ -262,7 +262,7 @@ brw_regs_negative_equal(const struct brw_reg *a, const struct brw_reg *b)
       if (a->bits != b->bits)
          return false;
 
-      switch (a->type) {
+      switch ((enum brw_reg_type) a->type) {
       case BRW_REGISTER_TYPE_UQ:
       case BRW_REGISTER_TYPE_Q:
          return a->d64 == -b->d64;
-- 
2.14.3



More information about the mesa-dev mailing list