Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@xxxxxxxxx> --- linearize.c | 5 ++++- validation/crash-bb_target.c | 10 ++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 validation/crash-bb_target.c diff --git a/linearize.c b/linearize.c index 12209492b..ba76397ea 100644 --- a/linearize.c +++ b/linearize.c @@ -334,6 +334,7 @@ const char *show_instruction(struct instruction *insn) case OP_SETVAL: { struct expression *expr = insn->val; + struct symbol *sym; buf += sprintf(buf, "%s <- ", show_pseudo(insn->target)); if (!expr) { @@ -355,7 +356,9 @@ const char *show_instruction(struct instruction *insn) buf += sprintf(buf, "%s", show_ident(expr->symbol->ident)); break; case EXPR_LABEL: - buf += sprintf(buf, ".L%u", expr->symbol->bb_target->nr); + sym = expr->symbol; + if (sym->bb_target) + buf += sprintf(buf, ".L%u", sym->bb_target->nr); break; default: buf += sprintf(buf, "SETVAL EXPR TYPE %d", expr->type); diff --git a/validation/crash-bb_target.c b/validation/crash-bb_target.c new file mode 100644 index 000000000..bc5a3d354 --- /dev/null +++ b/validation/crash-bb_target.c @@ -0,0 +1,10 @@ +a() { + &&b + +/* + * check-name: crash bb_target + * check-command: test-linearize $file + * + * check-error-ignore + * check-output-ignore + */ -- 2.13.2 -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html