nir/instr_set: Fix nir_instrs_equal for derefs
authorJason Ekstrand <jason.ekstrand@intel.com>
Wed, 25 Jul 2018 22:07:08 +0000 (15:07 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Sun, 29 Jul 2018 20:39:35 +0000 (13:39 -0700)
We weren't returning at the end of the nir_isntr_type_deref case in
nir_instrs_equal and it was falling through to the default of false.
While we're at it, make the default unreachable because all statements
in the switch now have their own returns.  Had we done that before, we
would have caught this bug a long time ago.

Fixes: 19a4662a540a8c94 "nir: Add a deref instruction type"
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Reviewed-by: Thomas Helland<thomashelland90@gmail.com>
src/compiler/nir/nir_instr_set.c

index 42aa61808ac6d0656300c2650b20565566e72dbc..19771fcd9dd4c52a67f5b0da02fb3435eb7ac883 100644 (file)
@@ -357,7 +357,7 @@ nir_instrs_equal(const nir_instr *instr1, const nir_instr *instr2)
       default:
          unreachable("Invalid instruction deref type");
       }
-      break;
+      return true;
    }
    case nir_instr_type_tex: {
       nir_tex_instr *tex1 = nir_instr_as_tex(instr1);
@@ -460,7 +460,7 @@ nir_instrs_equal(const nir_instr *instr1, const nir_instr *instr2)
       unreachable("Invalid instruction type");
    }
 
-   return false;
+   unreachable("All cases in the above switch should return");
 }
 
 static bool