nir: don't segfault when printing variables with no name
authorConnor Abbott <cwabbott0@gmail.com>
Tue, 27 Jun 2017 00:07:21 +0000 (17:07 -0700)
committerConnor Abbott <cwabbott0@gmail.com>
Thu, 13 Jul 2017 21:40:23 +0000 (14:40 -0700)
While normally we give variables whose name field is NULL a temporary
name when called from nir_print_shader(), when we were calling from
nir_print_instr() we never bothered, meaning that we just segfaulted
when trying to print out instructions with such a variable. Since
nir_print_instr() is meant to be called while debugging, we don't need
to bother too much about giving a consistent name, but we don't want to
crash in the middle of debugging.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
src/compiler/nir/nir_print.c

index 66c0669b594ba9742a7d33f2b65731f3df9306d3..f4811fe8bc11e62069be6c47ea1b06f2f1d4aad8 100644 (file)
@@ -257,7 +257,7 @@ static const char *
 get_var_name(nir_variable *var, print_state *state)
 {
    if (state->ht == NULL)
-      return var->name;
+      return var->name ? var->name : "unnamed";
 
    assert(state->syms);