From patchwork Thu Jul 6 19:19:50 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Luc Van Oostenryck X-Patchwork-Id: 9828793 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 9DD7E602CA for ; Thu, 6 Jul 2017 19:20:19 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 913F72873A for ; Thu, 6 Jul 2017 19:20:19 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 419782872D; Thu, 6 Jul 2017 19:20:19 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.3 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_HI, RCVD_IN_SORBS_SPAM, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2D5E02871D for ; Thu, 6 Jul 2017 19:20:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752826AbdGFTUJ (ORCPT ); Thu, 6 Jul 2017 15:20:09 -0400 Received: from mail-wr0-f195.google.com ([209.85.128.195]:36530 "EHLO mail-wr0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752838AbdGFTUJ (ORCPT ); Thu, 6 Jul 2017 15:20:09 -0400 Received: by mail-wr0-f195.google.com with SMTP id 77so2582156wrb.3 for ; Thu, 06 Jul 2017 12:20:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=Mc2BJ6qPihIEPG6MKFfkIuYfLBEBDYIV9DP6nqtYSTg=; b=m+/Rb/aTWOTEm4o82T32QssvTJdLI4ltEnVht510bjOZjNpcNMseE16U09ZRBBaQsJ xYU8az3ye0NPoix4lA8KkJvAxLkPwEUYpJnU3u4RAK0KpdeBS2L6kW0HEplQ0kemgmgg cNo6oV7g3cb7cCC9wS/2/ia0jib7sSd3UJsqg3eAbjT4ZWnzt5Pbuqe3PpjWiiVMyJth pWmVrBMRJUawyR4SeeNUQQj0SRC9wIcnDf+YsVtWYEyRckOSiXqfFsmqL3QNs1CGVD0g S9dQUUEdmJ/y+W6wQlvLxUr1YlaBdRgNbyijJAvOeQa1+o8KvgltASgngfsnbZwEv7XR uPeg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=Mc2BJ6qPihIEPG6MKFfkIuYfLBEBDYIV9DP6nqtYSTg=; b=T3n1H8UfkEdKDYKD69eNiDOCUgD4dtKyrjFnTFHn0HC88zTMK7CANhD4wZcwfdSJUY lZuCkTHaVVAzDiGWMgt/chIazS7vXhVlLOLMlRewXgWO2lXGnZFUqA8Qp0+A/UaqaBlO Z5+lenfsltFQQaz61PZWeRlSvQyrjAh/tV74+6JTVfKBVVFQwmrLz4C9Bp+8oRYPFTZt dNXJvr2pPZFAAJjjY2HimoYOV7f+hiiHNYwKuEwPoBOUVZVTMWl5ELz+ReUD4qy8OCnW kPf6Wqy96czL33LStG1QrLVF/5yCPoDqEwr0US21/pJ5BGqtKXBoY61qgQBCqwdhRAvV vSkw== X-Gm-Message-State: AIVw111mVKVWdtAeygWkQWHNm8EUAMTtS14INuHZTJGWP/qVBkwrKvAh Xqbl4lzBIM+YXvYP1tk= X-Received: by 10.28.46.3 with SMTP id u3mr535560wmu.68.1499368802383; Thu, 06 Jul 2017 12:20:02 -0700 (PDT) Received: from localhost.localdomain ([2a02:a03f:8ed:9a00:4423:4b1:a7de:145e]) by smtp.gmail.com with ESMTPSA id h6sm1105533wmf.31.2017.07.06.12.20.01 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 06 Jul 2017 12:20:01 -0700 (PDT) From: Luc Van Oostenryck To: linux-sparse@vger.kernel.org Cc: Christopher Li , Luc Van Oostenryck Subject: [PATCH 5/5] avoid crash with sym->bb_target == NULL Date: Thu, 6 Jul 2017 21:19:50 +0200 Message-Id: <20170706191950.81268-6-luc.vanoostenryck@gmail.com> X-Mailer: git-send-email 2.13.0 In-Reply-To: <20170706191950.81268-1-luc.vanoostenryck@gmail.com> References: <20170706191950.81268-1-luc.vanoostenryck@gmail.com> Sender: linux-sparse-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-sparse@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Luc Van Oostenryck --- 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 b76e980dc..d868c4551 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 + */