From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 68199 invoked by alias); 31 May 2019 16:54:22 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 68190 invoked by uid 89); 31 May 2019 16:54:22 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-14.1 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.1 spammy=59AM, H*f:sk:CAMe9rO, 59am, i386.c X-HELO: mail-ot1-f45.google.com Received: from mail-ot1-f45.google.com (HELO mail-ot1-f45.google.com) (209.85.210.45) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 31 May 2019 16:54:20 +0000 Received: by mail-ot1-f45.google.com with SMTP id u11so9841450otq.7 for ; Fri, 31 May 2019 09:54:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=sv9f2+tW4qspaAi0hG1blzQAJmZwtAGCnR7TGLMSgvU=; b=rpND3aj9AKzUlu8d8WbTCjCb/b+OWsFqI6NJ64sn92s8Q8QvWvpGYd/a4pHF/1kTPR I+yRTDBuDd0wzn1Bxwd2C6MfVa7zAea2VIUsUBgdn34Ed6uV9KZfrQn2RbRhaF6RxZ0B bi2FDo6uKKxh1UmoOhtKM96viyyY/X7htn7IGdh1/oxykvYD7QvNwa9xew7bAgJ/W4pY S3sSBfcZ60D8hfP1/9KxFO0rsE54kkJoiUjyWqB5DYqgZkBYn9A4TuU3c+krBhif8Ji/ 2O2qp4hqM+QqRxQu6SLWFjinuJhENasQH6Lvu8qEhSi4N6gsy0QDeQDf5iiDXYRh874D OkZA== MIME-Version: 1.0 References: <20190215041332.24720-1-hjl.tools@gmail.com> <20190216150211.GA13329@gmail.com> <20190528085725.GF19695@tucnak> <20190528151620.GM19695@tucnak> <20190528154820.GN19695@tucnak> <3e7c65bd-7008-000d-56ee-e72a2395a548@redhat.com> In-Reply-To: <3e7c65bd-7008-000d-56ee-e72a2395a548@redhat.com> From: "H.J. Lu" Date: Fri, 31 May 2019 17:39:00 -0000 Message-ID: Subject: [PATCH] Don't insert ENDBR after NOTE_INSN_DELETED_LABEL To: Jeff Law Cc: Jakub Jelinek , GCC Patches , Uros Bizjak , Jan Hubicka , =?UTF-8?B?5YiY6KKL6byg?= Content-Type: multipart/mixed; boundary="00000000000091d2a2058a31dd30" X-IsSubscribed: yes X-SW-Source: 2019-05/txt/msg02153.txt.bz2 --00000000000091d2a2058a31dd30 Content-Type: text/plain; charset="UTF-8" Content-length: 1465 On Tue, May 28, 2019 at 10:33 AM Jeff Law wrote: > > On 5/28/19 9:48 AM, Jakub Jelinek wrote: > > On Tue, May 28, 2019 at 08:30:59AM -0700, H.J. Lu wrote: > >>> We shouldn't generate ENDBR in that case, nothing can goto to bar (otherwise > >>> it would remain a normal label, not a deleted label). > >>> > >> > >> But return value of func () may be used with indirect jump. > > > > No, it may be used say to print that address, but computed goto can't be > > used to jump from one function to a different function, see > > https://gcc.gnu.org/onlinedocs/gcc/Labels-as-Values.html > > "You may not use this mechanism to jump to code in a different function. > > If you do that, totally unpredictable things happen." > Right. We disallowed this case some time ago IIRC. It's essentially > undefined behavior. I would even claim that in a CET world that we > *want* a CET fault if something tried to use the deleted label as a jump > target and thus an ENDBR is undesirable. > > > > > > NOTE_INSN_DELETED_LABEL is not guaranteed to be followed by any sensible > > code, the only reason it is kept is that there is or might be something > > referencing the label and so you want to emit the label somewhere in the > > function, but don't care much where in the function. > Exactly. > > Jeff Here is the updated patch not to insert ENDBR after NOTE_INSN_DELETED_LABEL. Tested on Linux/x86-64 with -fcf-protection. OK for trunk? Thanks. -- H.J. --00000000000091d2a2058a31dd30 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-i386-Don-t-insert-ENDBR-after-NOTE_INSN_DELETED_LABE.patch" Content-Disposition: attachment; filename="0001-i386-Don-t-insert-ENDBR-after-NOTE_INSN_DELETED_LABE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jwcbs8br0 Content-length: 6149 RnJvbSAyMjE0ODRjMWM2ODcxZDZmYTkzZDQzMzhkZjUyZDAzZDc2YTQzNmRj IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiSC5KLiBMdSIgPGhq bC50b29sc0BnbWFpbC5jb20+CkRhdGU6IFRodSwgMTQgRmViIDIwMTkgMDk6 MTI6NTcgLTA4MDAKU3ViamVjdDogW1BBVENIXSBpMzg2OiBEb24ndCBpbnNl cnQgRU5EQlIgYWZ0ZXIgTk9URV9JTlNOX0RFTEVURURfTEFCRUwKCk5PVEVf SU5TTl9ERUxFVEVEX0xBQkVMIGlzIHVzZWQgdG8gbWFyayB3aGF0IHVzZWQg dG8gYmUgYSAnY29kZV9sYWJlbCcsCmJ1dCB3YXMgbm90IHVzZWQgZm9yIG90 aGVyIHB1cnBvc2VzIHRoYW4gdGFraW5nIGl0cyBhZGRyZXNzIHdoaWNoIGNh bm5vdApiZSB1c2VkIGFzIHRhcmdldCBmb3IgaW5kaXJlY3QganVtcHMuCgpT aW5jZSBMQUJFTF9QUkVTRVJWRV9QIGlzIHRydWUgb25seSBpZiB0aGUgbGFi ZWwgYWRkcmVzcyB3YXMgdGFrZW4sIGRvbid0CnNldCBMQUJFTF9QUkVTRVJW RV9QIG9uIGxhYmVsIHVzZWQgdG8gaW5pdGlhbGl6ZSBQSUMgcmVnaXN0ZXIu CgpUZXN0ZWQgb24gTGludXgveDg2LTY0IHdpdGggLWZjZi1wcm90ZWN0aW9u LgoKRm9yIHg4Ni02NCBsaWJjLnNvIG9uIGdsaWJjIG1hc3RlciBicmFuY2gg KGNvbW1pdCBmNDNiOGRkNTU1ODhjMyksCgpCZWZvcmU6IDI5NjEgZW5kYnI2 NApBZnRlcjogIDI5NDMgZW5kYnI2NAoKMjAxOS0wNS0zMSAgSC5KLiBMdSAg PGhvbmdqaXUubHVAaW50ZWwuY29tPgoJICAgIEhvbmd0YW8gTGl1ICA8aG9u Z3Rhby5saXVAaW50ZWwuY29tPgoKZ2NjLwoKCVBSIHRhcmdldC84OTM1NQoJ KiBjb25maWcvaTM4Ni9pMzg2LWZlYXR1cmVzLmMgKHJlc3Rfb2ZfaW5zZXJ0 X2VuZGJyYW5jaCk6IFJlbW92ZQoJTk9URV9JTlNOX0RFTEVURURfTEFCRUwg Y2hlY2suCgkqIGNvbmZpZy9pMzg2L2kzODYuYyAoaXg4Nl9pbml0X2xhcmdl X3BpY19yZWcpOiBEb24ndCBzZXQKCUxBQkVMX1BSRVNFUlZFX1AuCgpnY2Mv dGVzdHN1aXRlLwoKCVBSIHRhcmdldC84OTM1NQoJKiBnY2MudGFyZ2V0L2kz ODYvY2V0LWxhYmVsLTMuYzogTmV3IHRlc3QuCgkqIGdjYy50YXJnZXQvaTM4 Ni9jZXQtbGFiZWwtNC5jOiBMaWtld2lzZS4KCSogZ2NjLnRhcmdldC9pMzg2 L2NldC1sYWJlbC01LmM6IExpa2V3aXNlLgotLS0KIGdjYy9jb25maWcvaTM4 Ni9pMzg2LWZlYXR1cmVzLmMgICAgICAgICAgICAgfCAgNSArLS0tLQogZ2Nj L2NvbmZpZy9pMzg2L2kzODYuYyAgICAgICAgICAgICAgICAgICAgICB8ICAx IC0KIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2NldC1sYWJlbC0z LmMgfCAyMyArKysrKysrKysrKysrKysrKysrKysKIGdjYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9pMzg2L2NldC1sYWJlbC00LmMgfCAxMiArKysrKysrKysr KwogZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvY2V0LWxhYmVsLTUu YyB8IDEzICsrKysrKysrKysrKwogNSBmaWxlcyBjaGFuZ2VkLCA0OSBpbnNl cnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0 IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2NldC1sYWJlbC0zLmMK IGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv aTM4Ni9jZXQtbGFiZWwtNC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvY2V0LWxhYmVsLTUuYwoKZGlmZiAt LWdpdCBhL2djYy9jb25maWcvaTM4Ni9pMzg2LWZlYXR1cmVzLmMgYi9nY2Mv Y29uZmlnL2kzODYvaTM4Ni1mZWF0dXJlcy5jCmluZGV4IDYwYTEyMGY0ZGY3 Li5jOGRlNTI2MTI0MCAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9pMzg2L2kz ODYtZmVhdHVyZXMuYworKysgYi9nY2MvY29uZmlnL2kzODYvaTM4Ni1mZWF0 dXJlcy5jCkBAIC0xOTExLDEwICsxOTExLDcgQEAgcmVzdF9vZl9pbnNlcnRf ZW5kYnJhbmNoICh2b2lkKQogCSAgICAgIGNvbnRpbnVlOwogCSAgICB9CiAK LQkgIGlmICgoTEFCRUxfUCAoaW5zbikgJiYgTEFCRUxfUFJFU0VSVkVfUCAo aW5zbikpCi0JICAgICAgfHwgKE5PVEVfUCAoaW5zbikKLQkJICAmJiBOT1RF X0tJTkQgKGluc24pID09IE5PVEVfSU5TTl9ERUxFVEVEX0xBQkVMKSkKLQkg ICAgLyogVE9ETy4gIENoZWNrIC9zIGJpdCBhbHNvLiAgKi8KKwkgIGlmIChM QUJFTF9QIChpbnNuKSAmJiBMQUJFTF9QUkVTRVJWRV9QIChpbnNuKSkKIAkg ICAgewogCSAgICAgIGNldF9lYiA9IGdlbl9ub3BfZW5kYnIgKCk7CiAJICAg ICAgZW1pdF9pbnNuX2FmdGVyIChjZXRfZWIsIGluc24pOwpkaWZmIC0tZ2l0 IGEvZ2NjL2NvbmZpZy9pMzg2L2kzODYuYyBiL2djYy9jb25maWcvaTM4Ni9p Mzg2LmMKaW5kZXggNzlmY2I1YzRlNTcuLmJiNGRmNDc2MGI2IDEwMDY0NAot LS0gYS9nY2MvY29uZmlnL2kzODYvaTM4Ni5jCisrKyBiL2djYy9jb25maWcv aTM4Ni9pMzg2LmMKQEAgLTE2NTEsNyArMTY1MSw2IEBAIGl4ODZfaW5pdF9s YXJnZV9waWNfcmVnICh1bnNpZ25lZCBpbnQgdG1wX3JlZ25vKQogICBnY2Nf YXNzZXJ0IChQbW9kZSA9PSBESW1vZGUpOwogICBsYWJlbCA9IGdlbl9sYWJl bF9ydHggKCk7CiAgIGVtaXRfbGFiZWwgKGxhYmVsKTsKLSAgTEFCRUxfUFJF U0VSVkVfUCAobGFiZWwpID0gMTsKICAgdG1wX3JlZyA9IGdlbl9ydHhfUkVH IChQbW9kZSwgdG1wX3JlZ25vKTsKICAgZ2NjX2Fzc2VydCAoUkVHTk8gKHBp Y19vZmZzZXRfdGFibGVfcnR4KSAhPSB0bXBfcmVnbm8pOwogICBlbWl0X2lu c24gKGdlbl9zZXRfcmlwX3JleDY0IChwaWNfb2Zmc2V0X3RhYmxlX3J0eCwK ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2Nl dC1sYWJlbC0zLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9j ZXQtbGFiZWwtMy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi45ZjQyN2E4NjZmMwotLS0gL2Rldi9udWxsCisrKyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2NldC1sYWJlbC0zLmMKQEAgLTAs MCArMSwyMyBAQAorLyogUFIgdGFyZ2V0Lzg5MzU1ICAqLworLyogeyBkZy1k byBjb21waWxlIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1mY2YtcHJv dGVjdGlvbiIgfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzICJlbmRicjMyIiAxIHsgdGFyZ2V0IGlhMzIgfSB9IH0gKi8KKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAiZW5kYnI2NCIg MSB7IHRhcmdldCB7ICEgaWEzMiB9IH0gfSB9ICovCitpbnQKK3Rlc3QgKGlu dCogdmFsKQoreworICBpbnQgc3RhdHVzID0gOTk7CisKKyAgaWYgKCF2YWwp CisgICAgeworICAgICAgc3RhdHVzID0gMjI7CisgICAgICBnb3RvIGVuZDsK KyAgICB9CisKKyAgZXh0ZXJuIGludCB4OworICAqdmFsID0geDsKKworICBz dGF0dXMgPSAwOworZW5kOgorICByZXR1cm4gc3RhdHVzOworfQpkaWZmIC0t Z2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvY2V0LWxhYmVs LTQuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2NldC1sYWJl bC00LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LmQ3NDNkMmJmMjAyCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L2kzODYvY2V0LWxhYmVsLTQuYwpAQCAtMCwwICsxLDEy IEBACisvKiBQUiB0YXJnZXQvODkzNTUgICovCisvKiB7IGRnLWRvIGNvbXBp bGUgeyB0YXJnZXQgeyBmcGljICYmIGxwNjQgfSB9IH0gKi8KKy8qIHsgZGct b3B0aW9ucyAiLU8yIC1mY2YtcHJvdGVjdGlvbiAtZlBJQyAtbWNtb2RlbD1s YXJnZSIgfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzICJlbmRicjY0IiAxIH0gfSAqLworCitleHRlcm4gaW50IHZhbDsKKwor aW50Cit0ZXN0ICh2b2lkKQoreworICByZXR1cm4gdmFsOworfQpkaWZmIC0t Z2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvY2V0LWxhYmVs LTUuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2NldC1sYWJl bC01LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu Ljg2MmM3OWIwNThkCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L2kzODYvY2V0LWxhYmVsLTUuYwpAQCAtMCwwICsxLDEz IEBACisvKiBQUiB0YXJnZXQvODkzNTUgICovCisvKiB7IGRnLWRvIGNvbXBp bGUgfSAqLworLyogeyBkZy1vcHRpb25zICItTzIgLWZjZi1wcm90ZWN0aW9u IC1Xbm8tcmV0dXJuLWxvY2FsLWFkZHIiIH0gKi8KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyAiZW5kYnIzMiIgMSB7IHRhcmdldCBp YTMyIH0gfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMgImVuZGJyNjQiIDEgeyB0YXJnZXQgeyAhIGlhMzIgfSB9IH0gfSAq LworCit2b2lkICoKK2Z1bmMgKHZvaWQpCit7CisgIHJldHVybiAmJmJhcjsK K2JhcjoKKyAgcmV0dXJuIDA7Cit9Ci0tIAoyLjIwLjEKCg== --00000000000091d2a2058a31dd30--