{"id":813703,"url":"http://patchwork.ozlabs.org/api/patches/813703/?format=json","web_url":"http://patchwork.ozlabs.org/project/gcc/patch/CAOyqgcXWKzGFRKNs8nQPnOvupjOVQaeMEr60emtpak1Pxf_ToQ@mail.gmail.com/","project":{"id":17,"url":"http://patchwork.ozlabs.org/api/projects/17/?format=json","name":"GNU Compiler Collection","link_name":"gcc","list_id":"gcc-patches.gcc.gnu.org","list_email":"gcc-patches@gcc.gnu.org","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<CAOyqgcXWKzGFRKNs8nQPnOvupjOVQaeMEr60emtpak1Pxf_ToQ@mail.gmail.com>","list_archive_url":null,"date":"2017-09-14T03:53:22","name":"Go patch committed: avoid compiler crash on invalid programs","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"73240fd6714572c7e54bb971ea248dc8a81708a6","submitter":{"id":36501,"url":"http://patchwork.ozlabs.org/api/people/36501/?format=json","name":"Ian Lance Taylor","email":"iant@golang.org"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/gcc/patch/CAOyqgcXWKzGFRKNs8nQPnOvupjOVQaeMEr60emtpak1Pxf_ToQ@mail.gmail.com/mbox/","series":[{"id":3025,"url":"http://patchwork.ozlabs.org/api/series/3025/?format=json","web_url":"http://patchwork.ozlabs.org/project/gcc/list/?series=3025","date":"2017-09-14T03:53:22","name":"Go patch committed: avoid compiler crash on invalid programs","version":1,"mbox":"http://patchwork.ozlabs.org/series/3025/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/813703/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/813703/checks/","tags":{},"related":[],"headers":{"Return-Path":"<gcc-patches-return-462102-incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":["patchwork-incoming@bilbo.ozlabs.org","mailing list gcc-patches@gcc.gnu.org"],"Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org\n\t(client-ip=209.132.180.131; helo=sourceware.org;\n\tenvelope-from=gcc-patches-return-462102-incoming=patchwork.ozlabs.org@gcc.gnu.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org\n\theader.b=\"Yvmx9CnI\"; dkim-atps=neutral","sourceware.org; auth=none"],"Received":["from sourceware.org (server1.sourceware.org [209.132.180.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xt4Q74WfXz9sBZ\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu, 14 Sep 2017 13:53:35 +1000 (AEST)","(qmail 8034 invoked by alias); 14 Sep 2017 03:53:27 -0000","(qmail 8021 invoked by uid 89); 14 Sep 2017 03:53:26 -0000","from mail-pg0-f44.google.com (HELO mail-pg0-f44.google.com)\n\t(74.125.83.44) by sourceware.org\n\t(qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP;\n\tThu, 14 Sep 2017 03:53:24 +0000","by mail-pg0-f44.google.com with SMTP id d8so4158413pgt.4 for\n\t<gcc-patches@gcc.gnu.org>; Wed, 13 Sep 2017 20:53:24 -0700 (PDT)","by 10.100.182.173 with HTTP; Wed, 13 Sep 2017 20:53:22 -0700 (PDT)"],"DomainKey-Signature":"a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender\n\t:mime-version:from:date:message-id:subject:to:content-type; q=\n\tdns; s=default; b=pItfcJV0maww1I7gTqOFNvB+PxqXgAKoRP8N8aqAIrV+d6\n\thKLv96CRAtCwh6U2HTUJ5faV1HVfijAp5C/jk7IXVtYB7TThSG3xzv/c9Uf+HLlK\n\t4EaxF5pF/p2+7kpuS7xuOiaZAvqB+wvYcdcZ7D9l9eVCvDdCVT0sK1rrZzdPY=","DKIM-Signature":"v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender\n\t:mime-version:from:date:message-id:subject:to:content-type; s=\n\tdefault; bh=pl7N/qFDIIQG7ctuOyMlBEnrBDI=; b=Yvmx9CnIO2bQjDjDz8nt\n\tnYhmkZ5+fmXyuUAjE9AMmzcDDZXQ98kv8uLp9xkNnB03+L12me3xTzhxEXRTpoWu\n\tC9QftsVOnKj+3k8cWKyyr4pKlCby36TXItZXhsixrCiKvmCCklVoHJkd6wV4I30w\n\t3gm2q49jTnPlENJA6VaFgbo=","Mailing-List":"contact gcc-patches-help@gcc.gnu.org; run by ezmlm","Precedence":"bulk","List-Id":"<gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<mailto:gcc-patches-unsubscribe-incoming=patchwork.ozlabs.org@gcc.gnu.org>","List-Archive":"<http://gcc.gnu.org/ml/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-help@gcc.gnu.org>","Sender":"gcc-patches-owner@gcc.gnu.org","X-Virus-Found":"No","X-Spam-SWARE-Status":"No, score=-11.0 required=5.0 tests=AWL, BAYES_00,\n\tGIT_PATCH_2, GIT_PATCH_3, KAM_ASCII_DIVIDERS,\n\tRCVD_IN_DNSWL_NONE,\n\tSPF_PASS autolearn=ham version=3.3.2 spammy=","X-HELO":"mail-pg0-f44.google.com","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net;\n\ts=20161025;\n\th=x-gm-message-state:mime-version:from:date:message-id:subject:to;\n\tbh=r4SVi3bUBCbklyp750ZbqS2tM+WfQgO3qh5WhLtyf8A=;\n\tb=sJGdhzBAeV3ekYBpfD4O9RmVJ52YBBWG3tykwvOrFMFZCrYViSp5jmOpkRuX1xGBia\n\toho0O8Mwc2oMNrJ69w/x+ji+iIjqreYrc06DTUvFzlCWgPI7YK/Ua8a1gQoU7n2BZ6FR\n\tD7IjF5DlYAqP1n2HlNI2QSCT2YoaAL1obZcM122l7xS6WXnfy3Q2x8E9Uo3Wi+SOrSC8\n\tiYwmVTtQeJQKdVNGLhAvliT26fPP4JLeukGNm2zX3cU90Y1smowhhnFe3KWkq//grGnL\n\tAoVFVZXdJ2cLmzn9DMoFVT7F87f1Kt95eCI5ZVRc0b7hcw1CujXyeexB6fKMZZDYyJ5u\n\tEiLw==","X-Gm-Message-State":"AHPjjUiTdmOYXahkxMsWY+/SPB3mHAX8CMJ/3ZrlhrxFRcQtvmcnXlan\tH/KtyHknnDRrxcs5ZDM3DwvE/GoIskUGQIZrDwfo/Q==","X-Google-Smtp-Source":"ADKCNb5vccYOfGIxKvhj5ld8YCeHUGBkLKRDde0jkbM9zUrqkEY+Mpc7b4065Xw5apklp+WolLFOUfrE7M+85rVSN2g=","X-Received":"by 10.98.223.137 with SMTP id d9mr20489285pfl.171.1505361202993;\n\tWed, 13 Sep 2017 20:53:22 -0700 (PDT)","MIME-Version":"1.0","From":"Ian Lance Taylor <iant@golang.org>","Date":"Wed, 13 Sep 2017 20:53:22 -0700","Message-ID":"<CAOyqgcXWKzGFRKNs8nQPnOvupjOVQaeMEr60emtpak1Pxf_ToQ@mail.gmail.com>","Subject":"Go patch committed: avoid compiler crash on invalid programs","To":"gcc-patches <gcc-patches@gcc.gnu.org>,\n\t\"gofrontend-dev@googlegroups.com\" <gofrontend-dev@googlegroups.com>","Content-Type":"multipart/mixed; boundary=\"f403045cc96ac382ac05591e37ef\""},"content":"This minor patch to the Go frontend avoids crashing the compiler on\nsome invalid programs.  Bootstrapped and ran Go testsuite on\nx86_64-pc-linux-gnu.  Committed to mainline.\n\nIan","diff":"Index: gcc/go/gofrontend/MERGE\n===================================================================\n--- gcc/go/gofrontend/MERGE\t(revision 252747)\n+++ gcc/go/gofrontend/MERGE\t(working copy)\n@@ -1,4 +1,4 @@\n-89e46ae0cde7bebd8e97434355c5b7e57d902613\n+0176cbc6dbd2170bfe2eb8904b80ddfe4c946997\n \n The first line of this file holds the git revision number of the last\n merge done from the gofrontend repository.\nIndex: gcc/go/gofrontend/expressions.cc\n===================================================================\n--- gcc/go/gofrontend/expressions.cc\t(revision 252746)\n+++ gcc/go/gofrontend/expressions.cc\t(working copy)\n@@ -210,7 +210,11 @@ Expression::convert_type_to_interface(Ty\n     }\n \n   // This should have been checked already.\n-  go_assert(lhs_interface_type->implements_interface(rhs_type, NULL));\n+  if (!lhs_interface_type->implements_interface(rhs_type, NULL))\n+    {\n+      go_assert(saw_errors());\n+      return Expression::make_error(location);\n+    }\n \n   // An interface is a tuple.  If LHS_TYPE is an empty interface type,\n   // then the first field is the type descriptor for RHS_TYPE.\n","prefixes":[]}