From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com [IPv6:2a00:1450:4864:20::52e]) by sourceware.org (Postfix) with ESMTPS id 3DA353858C3A for ; Wed, 20 Oct 2021 07:08:52 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 3DA353858C3A Received: by mail-ed1-x52e.google.com with SMTP id y30so20470698edi.0 for ; Wed, 20 Oct 2021 00:08:52 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=sdbco3hlu27LrfGp/nuXsNfnc/x8RNYJ0lPYufzKhxE=; b=RDoSFg2g7cPC4CYgeCToqjPUKI1fHIjom7sSDzbF8TtH/OZcgIuQAxcOfq8vw7eKMP QK50X+YTIBDHu0agtqPD3nZFTFc8maiwax14EFCbTA8YdnRLgrZORSVw7+b1mcVVAcfS gHbYegTxajWFa+zmhj8qUlEKE7QBrkojbuJE7ZkInMG0LJ192PyZydSFt0lRytcxmUhq CzGCpyghkp78CIpILjklKOGR6wZ+kPiHqD6knBEsOQtpGsP1loxZLeFC5mQfWTgsXdh9 5/zYKuyGwxjzor3ah4saQpZwWDNvNOh3OSeMg+Iyzrxz036Nk3xjngEPg+WzX/p2qh/P fESQ== X-Gm-Message-State: AOAM533c+T0ZA24adkZlQWJZkJ4TUkUF2Ph9M71DtSVWghQlxbzPu48H ovBLmECNCnHjayXK/vY+yRjiM+2Gs5UpXX1FBTO6VA== X-Google-Smtp-Source: ABdhPJwVAZv4frKvj1Z1m/mbkwC9jCcqY6X0L30R9tRRMICzE89gTzcQD2/UMaDGfjSMyjm7HBGRxaXT/CuN9iMo7To= X-Received: by 2002:a17:906:1f95:: with SMTP id t21mr43244727ejr.234.1634713727067; Wed, 20 Oct 2021 00:08:47 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Prathamesh Kulkarni Date: Wed, 20 Oct 2021 12:38:11 +0530 Message-ID: Subject: Re: [aarch64] PR102376 - Emit better diagnostic for arch extensions in target attr To: Prathamesh Kulkarni , gcc Patches , =?UTF-8?Q?Martin_Li=C5=A1ka?= , Richard Sandiford Content-Type: multipart/mixed; boundary="00000000000003401705cec373c3" X-Spam-Status: No, score=-8.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Oct 2021 07:08:53 -0000 --00000000000003401705cec373c3 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, 19 Oct 2021 at 19:58, Richard Sandiford wrote: > > Prathamesh Kulkarni writes: > > Hi, > > The attached patch emits a more verbose diagnostic for target attribute= that > > is an architecture extension needing a leading '+'. > > > > For the following test, > > void calculate(void) __attribute__ ((__target__ ("sve"))); > > > > With patch, the compiler now emits: > > 102376.c:1:1: error: arch extension =E2=80=98sve=E2=80=99 should be pre= pended with =E2=80=98+=E2=80=99 > > 1 | void calculate(void) __attribute__ ((__target__ ("sve"))); > > | ^~~~ > > > > instead of: > > 102376.c:1:1: error: pragma or attribute =E2=80=98target("sve")=E2=80= =99 is not valid > > 1 | void calculate(void) __attribute__ ((__target__ ("sve"))); > > | ^~~~ > > Nice :-) > > > (This isn't specific to sve though). > > OK to commit after bootstrap+test ? > > > > Thanks, > > Prathamesh > > > > diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.= c > > index a9a1800af53..975f7faf968 100644 > > --- a/gcc/config/aarch64/aarch64.c > > +++ b/gcc/config/aarch64/aarch64.c > > @@ -17821,7 +17821,16 @@ aarch64_process_target_attr (tree args) > > num_attrs++; > > if (!aarch64_process_one_target_attr (token)) > > { > > - error ("pragma or attribute % is not valid", t= oken); > > + /* Check if token is possibly an arch extension without > > + leading '+'. */ > > + char *str =3D (char *) xmalloc (strlen (token) + 2); > > + str[0] =3D '+'; > > + strcpy(str + 1, token); > > I think std::string would be better here, e.g.: > > auto with_plus =3D std::string ("+") + token; > > > + if (aarch64_handle_attr_isa_flags (str)) > > + error("arch extension %<%s%> should be prepended with %<+%>",= token); > > Nit: should be a space before the =E2=80=9C(=E2=80=9D. > > In principle, a fixit hint would have been nice here, but I don't think > we have enough information to provide one. (Just saying for the record.) Thanks for the suggestions. Does the attached patch look OK ? Thanks, Prathamesh > > Thanks, > Richard > > > + else > > + error ("pragma or attribute % is not valid",= token); > > + free (str); > > return false; > > } > > --00000000000003401705cec373c3 Content-Type: text/plain; charset="US-ASCII"; name="pr102376-2.txt" Content-Disposition: attachment; filename="pr102376-2.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kuz68uh50 W2FhcmNoNjRdIFBSMTAyMzc2IC0gRW1pdCBiZXR0ZXIgZGlhZ25vc3RpY3MgZm9yIGFyY2ggZXh0 ZW5zaW9uIGluIHRhcmdldCBhdHRyaWJ1dGUuCgpnY2MvQ2hhbmdlTG9nOgoJUFIgdGFyZ2V0LzEw MjM3NgoJKiBjb25maWcvYWFyY2g2NC9hYXJjaDY0LmMgKGFhcmNoNjRfaGFuZGxlX2F0dHJfaXNh X2ZsYWdzKTogQ2hhbmdlIHN0cidzCgl0eXBlIHRvIGNvbnN0IGNoYXIgKi4KCShhYXJjaDY0X3By b2Nlc3NfdGFyZ2V0X2F0dHIpOiBDaGVjayBpZiB0b2tlbiBpcyBwb3NzaWJseSBhbiBhcmNoIGV4 dGVuc2lvbgoJd2l0aG91dCBsZWFkaW5nICcrJyBhbmQgZW1pdCBkaWFnbm9zdGljIGFjY29yZGlu Z2x5LgoKZ2NjL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6CglQUiB0YXJnZXQvMTAyMzc2CgkqIGdjYy50 YXJnZXQvYWFyY2g2NC9wcjEwMjM3Ni5jOiBOZXcgdGVzdC4KZGlmZiAtLWdpdCBhL2djYy9jb25m aWcvYWFyY2g2NC9hYXJjaDY0LmMgYi9nY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC5jCmluZGV4 IGE5YTE4MDBhZjUzLi5iNzIwNzliYzQ2NiAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9hYXJjaDY0 L2FhcmNoNjQuYworKysgYi9nY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC5jCkBAIC0xNzU0OCw3 ICsxNzU0OCw3IEBAIGFhcmNoNjRfaGFuZGxlX2F0dHJfdHVuZSAoY29uc3QgY2hhciAqc3RyKQog ICAgbW9kaWZpZWQuICAqLwogCiBzdGF0aWMgYm9vbAotYWFyY2g2NF9oYW5kbGVfYXR0cl9pc2Ff ZmxhZ3MgKGNoYXIgKnN0cikKK2FhcmNoNjRfaGFuZGxlX2F0dHJfaXNhX2ZsYWdzIChjb25zdCBj aGFyICpzdHIpCiB7CiAgIGVudW0gYWFyY2g2NF9wYXJzZV9vcHRfcmVzdWx0IHBhcnNlX3JlczsK ICAgdWludDY0X3QgaXNhX2ZsYWdzID0gYWFyY2g2NF9pc2FfZmxhZ3M7CkBAIC0xNzgyMSw3ICsx NzgyMSwxMyBAQCBhYXJjaDY0X3Byb2Nlc3NfdGFyZ2V0X2F0dHIgKHRyZWUgYXJncykKICAgICAg IG51bV9hdHRycysrOwogICAgICAgaWYgKCFhYXJjaDY0X3Byb2Nlc3Nfb25lX3RhcmdldF9hdHRy ICh0b2tlbikpCiAJewotCSAgZXJyb3IgKCJwcmFnbWEgb3IgYXR0cmlidXRlICU8dGFyZ2V0KFwi JXNcIiklPiBpcyBub3QgdmFsaWQiLCB0b2tlbik7CisJICAvKiBDaGVjayBpZiB0b2tlbiBpcyBw b3NzaWJseSBhbiBhcmNoIGV4dGVuc2lvbiB3aXRob3V0CisJICAgICBsZWFkaW5nICcrJy4gICov CisJICBhdXRvIHdpdGhfcGx1cyA9IHN0ZDo6c3RyaW5nKCIrIikgKyB0b2tlbjsKKwkgIGlmIChh YXJjaDY0X2hhbmRsZV9hdHRyX2lzYV9mbGFncyAod2l0aF9wbHVzLmNfc3RyICgpKSkKKwkgICAg ZXJyb3IgKCJhcmNoIGV4dGVuc2lvbiAlPCVzJT4gc2hvdWxkIGJlIHByZXBlbmRlZCB3aXRoICU8 KyU+IiwgdG9rZW4pOworCSAgZWxzZQorCSAgICBlcnJvciAoInByYWdtYSBvciBhdHRyaWJ1dGUg JTx0YXJnZXQoXCIlc1wiKSU+IGlzIG5vdCB2YWxpZCIsIHRva2VuKTsKIAkgIHJldHVybiBmYWxz ZTsKIAl9CiAKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3By MTAyMzc2LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9wcjEwMjM3Ni5jCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lZmQxNWY2Y2E5YgotLS0gL2Rl di9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3ByMTAyMzc2LmMK QEAgLTAsMCArMSwzIEBACisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLworCit2b2lkIGNhbGN1bGF0 ZSh2b2lkKSBfX2F0dHJpYnV0ZV9fICgoX190YXJnZXRfXyAoInN2ZSIpKSk7IC8qIHsgZGctZXJy b3IgImFyY2ggZXh0ZW5zaW9uICdzdmUnIHNob3VsZCBiZSBwcmVwZW5kZWQgd2l0aCAnXFwrJyIg fSAqLwo= --00000000000003401705cec373c3--