From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf1-x429.google.com (mail-pf1-x429.google.com [IPv6:2607:f8b0:4864:20::429]) by sourceware.org (Postfix) with ESMTPS id 17E7D3858D37 for ; Mon, 10 Oct 2022 21:27:42 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 17E7D3858D37 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=golang.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=golang.org Received: by mail-pf1-x429.google.com with SMTP id d10so11804807pfh.6 for ; Mon, 10 Oct 2022 14:27:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=golang-org.20210112.gappssmtp.com; s=20210112; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=fPeXUV4YDByXsyAddIrmNADEPYcNDocCJgQLZy3PmlE=; b=m5c5iEIa87oNRoowpl06HoQOcJvHCDmvYDVZERgRY1OdPa5Iwr07Tf8MBEoQruJjyB 6zcqSCcHxS5tQ4IYCgubfW/HXZHEHFc8xhor7CmHf02084K0Z6ApQ5tt+sw3MBz8PTut KoCre4d/UqSQP/R2AZxadDXzKqeB4kkOykfV0oLZ+hqwO/uu+/L2SRaBUbWK/mdEJSAK GddXRfOO9sXah/hEuQ0LKFcxSq+9pngL83KQbajIRhz3COKdhPdCi5gMQVw8AAxAumIG sWJlf1kPqu8T7dVRlPcsmdDR8NC2dPnY2F2d98JnlW7ohZNdmvKP/uMu+V2pTF8G6cE7 OGyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=fPeXUV4YDByXsyAddIrmNADEPYcNDocCJgQLZy3PmlE=; b=uVbhjIx6mo3TzlxerwDrGepG3PQbkwrxWowdgvtVi2qOLTan2bbnilwkUBbyZLjiP9 V15mazn4MkMtCDQTfbMYkuOvvf2i3U0qmEAMTdKlZ658858bvVBQ32dKlhrj88N3jtFW WkJOqitM9T8BjKiji7aHF1y1G71YNGH4SSnCV/yZ2/6FxrpMRSPPRfuuEAPmAoXMDDi4 KjEx60TymdIQa0XbPnRy4X8Fh3hKt99FhAqWHJoFfjXMUTV5R0kh4whbtQqSSjHnRS15 6BGSkAk4IyqCzJjyAmZYhNY7z2QVpo1fxXqzeSV4vs2BD5Kxo0DFs3y+pgKIg17CRcMM 4ZZQ== X-Gm-Message-State: ACrzQf1MurPF773sc55PWKJLKyjLg1SwczvID+ezrR4lcqIzlqj5VmBv CbkuL3/yy4pH6iwiQ7YW/rkj3Q7BMgD2HZ5Ba0REBuy9dfpZ2Q== X-Google-Smtp-Source: AMsMyM4LLHDg23hFBX9uu9xPkgw9SERxFSi8v56Ft1V2Gbx1NiEb0rmh2M8h7YEKvYu1RKvTtWghCbk8MWzwMPEuMbc= X-Received: by 2002:a65:6a12:0:b0:445:84f6:676a with SMTP id m18-20020a656a12000000b0044584f6676amr18040140pgu.40.1665437260700; Mon, 10 Oct 2022 14:27:40 -0700 (PDT) MIME-Version: 1.0 From: Ian Lance Taylor Date: Mon, 10 Oct 2022 14:27:29 -0700 Message-ID: Subject: Go patch committed: Only build thunk struct type when needed To: gcc-patches , gofrontend-dev Content-Type: multipart/mixed; boundary="00000000000052789105eab4d4f0" X-Spam-Status: No, score=-10.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,GIT_PATCH_0,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --00000000000052789105eab4d4f0 Content-Type: text/plain; charset="UTF-8" This patch to the Go frontend delays building the struct type for a go/defer thunk until it is needed. We were building it in the determine_types pass. Now, we delay until the simplify_thunk_statements pass. That ensures that we are consistent in determining whether an argument is constant. With this change we no longer need to add a field for a call to recover, as the simplify_thunk_statements pass runs after the build_recover_thunks pass, so the additional argument will already have been added to the call. The test case for this is https://go.dev/cl/440297. This fixes https://go.dev/issue/56109. Bootstrapped and ran Go testsuite on x86_64-pc-linux-gnu. Committed to mainline. Ian --00000000000052789105eab4d4f0 Content-Type: text/plain; charset="US-ASCII"; name="patch.txt" Content-Disposition: attachment; filename="patch.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l93abvxp0 MTBjMjYyNTlhOGVhMzRhNjNhMTRlODViMThlNjA2Njc2NmFkNmE3YQpkaWZmIC0tZ2l0IGEvZ2Nj L2dvL2dvZnJvbnRlbmQvTUVSR0UgYi9nY2MvZ28vZ29mcm9udGVuZC9NRVJHRQppbmRleCAxMGVk M2ZlZTY3Yy4uMWMyNDY2MDkwZjEgMTAwNjQ0Ci0tLSBhL2djYy9nby9nb2Zyb250ZW5kL01FUkdF CisrKyBiL2djYy9nby9nb2Zyb250ZW5kL01FUkdFCkBAIC0xLDQgKzEsNCBAQAotNTA3MDdiNGI1 MTI2NjE2NmNlOWJjZjlkZTE4N2UzNTc2MGVjNTBmOQorMTY0ZjJhZWIxZGVlYzRjMTFlNTViOGJm YjE1MmZmN2ZmNGMxZGQ0YwogCiBUaGUgZmlyc3QgbGluZSBvZiB0aGlzIGZpbGUgaG9sZHMgdGhl IGdpdCByZXZpc2lvbiBudW1iZXIgb2YgdGhlIGxhc3QKIG1lcmdlIGRvbmUgZnJvbSB0aGUgZ29m cm9udGVuZCByZXBvc2l0b3J5LgpkaWZmIC0tZ2l0IGEvZ2NjL2dvL2dvZnJvbnRlbmQvc3RhdGVt ZW50cy5jYyBiL2djYy9nby9nb2Zyb250ZW5kL3N0YXRlbWVudHMuY2MKaW5kZXggYjQ0MjgzMGIw YjcuLmFmOGM3ZDE1OTk4IDEwMDY0NAotLS0gYS9nY2MvZ28vZ29mcm9udGVuZC9zdGF0ZW1lbnRz LmNjCisrKyBiL2djYy9nby9nb2Zyb250ZW5kL3N0YXRlbWVudHMuY2MKQEAgLTIzNDksNyArMjM0 OSw3IEBAIFRodW5rX3N0YXRlbWVudDo6VGh1bmtfc3RhdGVtZW50KFN0YXRlbWVudF9jbGFzc2lm aWNhdGlvbiBjbGFzc2lmaWNhdGlvbiwKIAkJCQkgQ2FsbF9leHByZXNzaW9uKiBjYWxsLAogCQkJ CSBMb2NhdGlvbiBsb2NhdGlvbikKICAgICA6IFN0YXRlbWVudChjbGFzc2lmaWNhdGlvbiwgbG9j YXRpb24pLAotICAgICAgY2FsbF8oY2FsbCksIHN0cnVjdF90eXBlXyhOVUxMKQorICAgICAgY2Fs bF8oY2FsbCkKIHsKIH0KIApAQCAtMjQzMCwxNSArMjQzMCw2IEBAIHZvaWQKIFRodW5rX3N0YXRl bWVudDo6ZG9fZGV0ZXJtaW5lX3R5cGVzKCkKIHsKICAgdGhpcy0+Y2FsbF8tPmRldGVybWluZV90 eXBlX25vX2NvbnRleHQoKTsKLQotICAvLyBOb3cgdGhhdCB3ZSBrbm93IHRoZSB0eXBlcyBvZiB0 aGUgY2FsbCwgYnVpbGQgdGhlIHN0cnVjdCB1c2VkIHRvCi0gIC8vIHBhc3MgcGFyYW1ldGVycy4K LSAgQ2FsbF9leHByZXNzaW9uKiBjZSA9IHRoaXMtPmNhbGxfLT5jYWxsX2V4cHJlc3Npb24oKTsK LSAgaWYgKGNlID09IE5VTEwpCi0gICAgcmV0dXJuOwotICBGdW5jdGlvbl90eXBlKiBmbnR5cGUg PSBjZS0+Z2V0X2Z1bmN0aW9uX3R5cGUoKTsKLSAgaWYgKGZudHlwZSAhPSBOVUxMICYmICF0aGlz LT5pc19zaW1wbGUoZm50eXBlKSkKLSAgICB0aGlzLT5zdHJ1Y3RfdHlwZV8gPSB0aGlzLT5idWls ZF9zdHJ1Y3QoZm50eXBlKTsKIH0KIAogLy8gQ2hlY2sgdHlwZXMgaW4gYSB0aHVuayBzdGF0ZW1l bnQuCkBAIC0yNTgxLDYgKzI1NzIsOCBAQCBUaHVua19zdGF0ZW1lbnQ6OnNpbXBsaWZ5X3N0YXRl bWVudChHb2dvKiBnb2dvLCBOYW1lZF9vYmplY3QqIGZ1bmN0aW9uLAogICBpZiAodGhpcy0+aXNf c2ltcGxlKGZudHlwZSkpCiAgICAgcmV0dXJuIGZhbHNlOwogCisgIFN0cnVjdF90eXBlKiBzdHJ1 Y3RfdHlwZSA9IHRoaXMtPmJ1aWxkX3N0cnVjdChmbnR5cGUpOworCiAgIEV4cHJlc3Npb24qIGZu ID0gY2UtPmZuKCk7CiAgIEludGVyZmFjZV9maWVsZF9yZWZlcmVuY2VfZXhwcmVzc2lvbiogaW50 ZXJmYWNlX21ldGhvZCA9CiAgICAgZm4tPmludGVyZmFjZV9maWVsZF9yZWZlcmVuY2VfZXhwcmVz c2lvbigpOwpAQCAtMjYwMCw3ICsyNTkzLDcgQEAgVGh1bmtfc3RhdGVtZW50OjpzaW1wbGlmeV9z dGF0ZW1lbnQoR29nbyogZ29nbywgTmFtZWRfb2JqZWN0KiBmdW5jdGlvbiwKICAgc3RkOjpzdHJp bmcgdGh1bmtfbmFtZSA9IGdvZ28tPnRodW5rX25hbWUoKTsKIAogICAvLyBCdWlsZCB0aGUgdGh1 bmsuCi0gIHRoaXMtPmJ1aWxkX3RodW5rKGdvZ28sIHRodW5rX25hbWUpOworICB0aGlzLT5idWls ZF90aHVuayhnb2dvLCB0aHVua19uYW1lLCBzdHJ1Y3RfdHlwZSk7CiAKICAgLy8gR2VuZXJhdGUg Y29kZSB0byBjYWxsIHRoZSB0aHVuay4KIApAQCAtMjYzMCw4ICsyNjIzLDcgQEAgVGh1bmtfc3Rh dGVtZW50OjpzaW1wbGlmeV9zdGF0ZW1lbnQoR29nbyogZ29nbywgTmFtZWRfb2JqZWN0KiBmdW5j dGlvbiwKIAogICAvLyBCdWlsZCB0aGUgc3RydWN0LgogICBFeHByZXNzaW9uKiBjb25zdHJ1Y3Rv ciA9Ci0gICAgRXhwcmVzc2lvbjo6bWFrZV9zdHJ1Y3RfY29tcG9zaXRlX2xpdGVyYWwodGhpcy0+ c3RydWN0X3R5cGVfLCB2YWxzLAotCQkJCQkgICAgICBsb2NhdGlvbik7CisgICAgRXhwcmVzc2lv bjo6bWFrZV9zdHJ1Y3RfY29tcG9zaXRlX2xpdGVyYWwoc3RydWN0X3R5cGUsIHZhbHMsIGxvY2F0 aW9uKTsKIAogICAvLyBBbGxvY2F0ZSB0aGUgaW5pdGlhbGl6ZWQgc3RydWN0IG9uIHRoZSBoZWFw LgogICBjb25zdHJ1Y3RvciA9IEV4cHJlc3Npb246Om1ha2VfaGVhcF9leHByZXNzaW9uKGNvbnN0 cnVjdG9yLCBsb2NhdGlvbik7CkBAIC0yNzQ1LDE1ICsyNzM3LDYgQEAgVGh1bmtfc3RhdGVtZW50 OjpidWlsZF9zdHJ1Y3QoRnVuY3Rpb25fdHlwZSogZm50eXBlKQogICAgICAgZmllbGRzLT5wdXNo X2JhY2soU3RydWN0X2ZpZWxkKHRpZCkpOwogICAgIH0KIAotICAvLyBUaGUgcHJlZGVjbGFyZWQg cmVjb3ZlciBmdW5jdGlvbiBoYXMgbm8gYXJndW1lbnQuICBIb3dldmVyLCB3ZQotICAvLyBhZGQg YW4gYXJndW1lbnQgd2hlbiBidWlsZGluZyByZWNvdmVyIHRodW5rcy4gIEhhbmRsZSB0aGF0IGhl cmUuCi0gIGlmIChjZS0+aXNfcmVjb3Zlcl9jYWxsKCkpCi0gICAgewotICAgICAgZmllbGRzLT5w dXNoX2JhY2soU3RydWN0X2ZpZWxkKFR5cGVkX2lkZW50aWZpZXIoImNhbl9yZWNvdmVyIiwKLQkJ CQkJCSAgICAgIFR5cGU6Omxvb2t1cF9ib29sX3R5cGUoKSwKLQkJCQkJCSAgICAgIGxvY2F0aW9u KSkpOwotICAgIH0KLQogICBjb25zdCBFeHByZXNzaW9uX2xpc3QqIGFyZ3MgPSBjZS0+YXJncygp OwogICBpZiAoYXJncyAhPSBOVUxMKQogICAgIHsKQEAgLTI3ODEsNyArMjc2NCw4IEBAIFRodW5r X3N0YXRlbWVudDo6YnVpbGRfc3RydWN0KEZ1bmN0aW9uX3R5cGUqIGZudHlwZSkKIC8vIGFydGlm aWNpYWwsIGZ1bmN0aW9uLgogCiB2b2lkCi1UaHVua19zdGF0ZW1lbnQ6OmJ1aWxkX3RodW5rKEdv Z28qIGdvZ28sIGNvbnN0IHN0ZDo6c3RyaW5nJiB0aHVua19uYW1lKQorVGh1bmtfc3RhdGVtZW50 OjpidWlsZF90aHVuayhHb2dvKiBnb2dvLCBjb25zdCBzdGQ6OnN0cmluZyYgdGh1bmtfbmFtZSwK KwkJCSAgICAgU3RydWN0X3R5cGUqIHN0cnVjdF90eXBlKQogewogICBMb2NhdGlvbiBsb2NhdGlv biA9IHRoaXMtPmxvY2F0aW9uKCk7CiAKQEAgLTI4MDcsNyArMjc5MSw3IEBAIFRodW5rX3N0YXRl bWVudDo6YnVpbGRfdGh1bmsoR29nbyogZ29nbywgY29uc3Qgc3RkOjpzdHJpbmcmIHRodW5rX25h bWUpCiAgIC8vIHdoaWNoIGlzIGEgcG9pbnRlciB0byB0aGUgc3BlY2lhbCBzdHJ1Y3R1cmUgd2Ug YnVpbGQuCiAgIGNvbnN0IGNoYXIqIGNvbnN0IHBhcmFtZXRlcl9uYW1lID0gIl9fZ29fdGh1bmtf cGFyYW1ldGVyIjsKICAgVHlwZWRfaWRlbnRpZmllcl9saXN0KiB0aHVua19wYXJhbWV0ZXJzID0g bmV3IFR5cGVkX2lkZW50aWZpZXJfbGlzdCgpOwotICBUeXBlKiBwb2ludGVyX3RvX3N0cnVjdF90 eXBlID0gVHlwZTo6bWFrZV9wb2ludGVyX3R5cGUodGhpcy0+c3RydWN0X3R5cGVfKTsKKyAgVHlw ZSogcG9pbnRlcl90b19zdHJ1Y3RfdHlwZSA9IFR5cGU6Om1ha2VfcG9pbnRlcl90eXBlKHN0cnVj dF90eXBlKTsKICAgdGh1bmtfcGFyYW1ldGVycy0+cHVzaF9iYWNrKFR5cGVkX2lkZW50aWZpZXIo cGFyYW1ldGVyX25hbWUsCiAJCQkJCSAgICAgICBwb2ludGVyX3RvX3N0cnVjdF90eXBlLAogCQkJ CQkgICAgICAgbG9jYXRpb24pKTsKQEAgLTI5MTQsNyArMjg5OCw3IEBAIFRodW5rX3N0YXRlbWVu dDo6YnVpbGRfdGh1bmsoR29nbyogZ29nbywgY29uc3Qgc3RkOjpzdHJpbmcmIHRodW5rX25hbWUp CiAgICAgfQogCiAgIEV4cHJlc3Npb25fbGlzdCogY2FsbF9wYXJhbXMgPSBuZXcgRXhwcmVzc2lv bl9saXN0KCk7Ci0gIGNvbnN0IFN0cnVjdF9maWVsZF9saXN0KiBmaWVsZHMgPSB0aGlzLT5zdHJ1 Y3RfdHlwZV8tPmZpZWxkcygpOworICBjb25zdCBTdHJ1Y3RfZmllbGRfbGlzdCogZmllbGRzID0g c3RydWN0X3R5cGUtPmZpZWxkcygpOwogICBTdHJ1Y3RfZmllbGRfbGlzdDo6Y29uc3RfaXRlcmF0 b3IgcCA9IGZpZWxkcy0+YmVnaW4oKTsKICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBu ZXh0X2luZGV4OyArK2kpCiAgICAgKytwOwpkaWZmIC0tZ2l0IGEvZ2NjL2dvL2dvZnJvbnRlbmQv c3RhdGVtZW50cy5oIGIvZ2NjL2dvL2dvZnJvbnRlbmQvc3RhdGVtZW50cy5oCmluZGV4IGMwOGI0 OTNlNmM5Li4zZDFlZTMzYTNlNSAxMDA2NDQKLS0tIGEvZ2NjL2dvL2dvZnJvbnRlbmQvc3RhdGVt ZW50cy5oCisrKyBiL2djYy9nby9nb2Zyb250ZW5kL3N0YXRlbWVudHMuaApAQCAtMTQxMSw3ICsx NDExLDcgQEAgY2xhc3MgVGh1bmtfc3RhdGVtZW50IDogcHVibGljIFN0YXRlbWVudAogCiAgIC8v IEJ1aWxkIHRoZSB0aHVuay4KICAgdm9pZAotICBidWlsZF90aHVuayhHb2dvKiwgY29uc3Qgc3Rk OjpzdHJpbmcmKTsKKyAgYnVpbGRfdGh1bmsoR29nbyosIGNvbnN0IHN0ZDo6c3RyaW5nJiwgU3Ry dWN0X3R5cGUqKTsKIAogICAvLyBTZXQgdGhlIG5hbWUgdG8gdXNlIGZvciB0aHVuayBmaWVsZCBO LgogICB2b2lkCkBAIC0xNDIwLDkgKzE0MjAsNiBAQCBjbGFzcyBUaHVua19zdGF0ZW1lbnQgOiBw dWJsaWMgU3RhdGVtZW50CiAgIC8vIFRoZSBmdW5jdGlvbiBjYWxsIHRvIGJlIGV4ZWN1dGVkIGlu IGEgc2VwYXJhdGUgdGhyZWFkIChnbykgb3IKICAgLy8gbGF0ZXIgKGRlZmVyKS4KICAgRXhwcmVz c2lvbiogY2FsbF87Ci0gIC8vIFRoZSB0eXBlIHVzZWQgZm9yIGEgc3RydWN0IHRvIHBhc3MgdG8g YSB0aHVuaywgaWYgdGhpcyBpcyBub3QgYQotICAvLyBzaW1wbGUgY2FsbC4KLSAgU3RydWN0X3R5 cGUqIHN0cnVjdF90eXBlXzsKIH07CiAKIC8vIEEgZ28gc3RhdGVtZW50Lgo= --00000000000052789105eab4d4f0--