From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by sourceware.org (Postfix) with ESMTPS id 0A5283858C2B for ; Fri, 4 Nov 2022 17:07:04 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 0A5283858C2B Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1667581623; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=vwDP8e2iJz3W60TMBI6IxSHmSbGqpBQ+Ugt/yss6cc8=; b=Y+zR4BQFxjFxZgx3LK8Edvhusa8xpUXNrbEzttPnQpXXkGrL0es20qngwBb3/t7qYeliAA SPer+4xYEu+89OvDIbkNL8FIlH7vZmAjVt960ftnxd5mXVT9+Ovx7WUD390mENp7k138mz nZz4AJoprmok9ykJiiys55Gv0aQWfc0= Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-97-UmasZDHfMg-8p1746rAoWA-1; Fri, 04 Nov 2022 13:07:02 -0400 X-MC-Unique: UmasZDHfMg-8p1746rAoWA-1 Received: by mail-qk1-f198.google.com with SMTP id i17-20020a05620a249100b006fa2e10a2ecso4844694qkn.16 for ; Fri, 04 Nov 2022 10:07:02 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:from:references:to:content-language:subject:user-agent :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=G6ySBFOWpsxgt1kDHc4nJN1ypQtuVyba+gIQo063PBk=; b=qT+ZVBXcPWwmxB6RI+Gu/BYEzDDSiwqHF+wDK5gPNWD3wR9PvpMuAUybnLAy+Bycjr uNV7KnZeDC2VSoCPovBgCjTkyWfSrH6gVEq9PSV6DV7dr35htSsImjceeiM+RaHRGSNn n6ndH+G1qxJggkQqFYHJN9xehDLj8MO6JqX8eHQwvxwxPwiEpcHvebXMgkCHlWjd+fob MGSpZIHJVe/WNjkRZRxmMEooHlmTaNDK4kg0UKTKNMB6fjX0SZkk3/+jKTP8c6GCuP27 nblVDdo92cYW8+vsoWv5tczA4mFJGHtohNL4ShBViwruRm93whM5qZ0UiPqxEsJXnhMR qkhA== X-Gm-Message-State: ACrzQf1TLmSNTjaI1i2rjuarGTmA1PfyqpLv/ICaX8pCwr8QGhLtV2MK R6PS3GyuvVolVSBC4e7bwcM0dwaS93deyBGFN6028VeMTk3kfgJawFA0HJtyTq0cncoCsCFh/+D OtWS8Y4upDs3t1o3Viw== X-Received: by 2002:a05:6214:5181:b0:478:69bd:38c5 with SMTP id kl1-20020a056214518100b0047869bd38c5mr32620223qvb.59.1667581621797; Fri, 04 Nov 2022 10:07:01 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5rvXbHms+dAQ8+4dAL4bhzlzKnLysDLPYe1hMryNC62IdrveWqYpqV9G69/u+bN2AWmUhUPg== X-Received: by 2002:a05:6214:5181:b0:478:69bd:38c5 with SMTP id kl1-20020a056214518100b0047869bd38c5mr32620197qvb.59.1667581621499; Fri, 04 Nov 2022 10:07:01 -0700 (PDT) Received: from [192.168.1.101] (130-44-159-43.s15913.c3-0.arl-cbr1.sbo-arl.ma.cable.rcncustomer.com. [130.44.159.43]) by smtp.gmail.com with ESMTPSA id v3-20020a05620a440300b006e54251993esm3431307qkp.97.2022.11.04.10.07.00 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 04 Nov 2022 10:07:00 -0700 (PDT) Message-ID: <45256879-92f2-6a99-40a9-4f2be0ecfe96@redhat.com> Date: Fri, 4 Nov 2022 13:06:59 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.1 Subject: Re: [PATCH RFA] input: add get_source_text_between To: David Malcolm , gcc-patches@gcc.gnu.org References: <20221103195902.2114479-1-jason@redhat.com> <906b1326bd95c094331f7a5ff46723986215e3cf.camel@redhat.com> <22136833-3ba8-686b-4eae-a709f2c1780d@redhat.com> <41648997dfcb55920d54e93622501d4264068911.camel@redhat.com> From: Jason Merrill In-Reply-To: <41648997dfcb55920d54e93622501d4264068911.camel@redhat.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="------------UZ31fWv9NzsAO0QViP0IZ4Cb" Content-Language: en-US X-Spam-Status: No, score=-13.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_SHORT,NICE_REPLY_A,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE,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: This is a multi-part message in MIME format. --------------UZ31fWv9NzsAO0QViP0IZ4Cb Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 11/4/22 11:16, David Malcolm wrote: > On Fri, 2022-11-04 at 10:27 -0400, Jason Merrill wrote: >> On 11/3/22 19:06, David Malcolm wrote: >>> On Thu, 2022-11-03 at 15:59 -0400, Jason Merrill via Gcc-patches >>> wrote: > > [...snip...] > >>> >>> >>> Do you have test coverage for this from the DejaGnu side?  If not, >>> you >>> could add selftest coverage for this; see input.cc's >>> test_reading_source_line for something similar. >> >> There is test coverage for the output of the the contract violation >> handler, which involves printing the result of this function. > > Thanks.   Is this test posted somwehere? I was looking in: > https://gcc.gnu.org/pipermail/gcc-patches/2022-November/604974.html > but I'm not seeing it. Sorry if I'm missing something here. The tests are in the newer message https://gcc.gnu.org/pipermail/gcc-patches/2022-November/605072.html > Ideally we should have coverage for the three cases of: > (a) bails out and returns NULL This isn't tested because it should never happen. > (b) single-line case contracts-tmpl-spec3.C etc. > (c) multi-line case contracts-multiline1.C >> index a28abfac5ac..04d0809bfdf 100644 >> --- a/gcc/input.cc >> +++ b/gcc/input.cc >> @@ -949,6 +949,97 @@ location_get_source_line (const char *file_path, int line) >> return char_span (buffer, len); >> } > > Strings in input.cc are not always NUL-terminated, so... > >> >> +/* Return a copy of the source text between two locations. The caller is >> + responsible for freeing the return value. */ > > ...please note in the comment that if non-NULL, the copy is NUL- > terminated (I checked both exit paths that can return non-NULL, and > they do NUL-terminate their buffers). > > OK with that nit fixed. Thanks, pushing this: --------------UZ31fWv9NzsAO0QViP0IZ4Cb Content-Type: text/x-patch; charset=UTF-8; name="0001-input-add-get_source_text_between.patch" Content-Disposition: attachment; filename="0001-input-add-get_source_text_between.patch" Content-Transfer-Encoding: base64 RnJvbSAzNWQ0MzZjOGU5NDU1ZTk5MDE1ZDBlNDE0YTRlZGU5ZTU5ZTc3NGM0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIENoYXBtYW4gSUkgPGpjaGFwbWFuQGxvY2szc29mdHdh cmUuY29tPgpEYXRlOiBUaHUsIDMgTm92IDIwMjIgMTU6NDc6NDcgLTA0MDAKU3ViamVjdDogW1BB VENIXSBpbnB1dDogYWRkIGdldF9zb3VyY2VfdGV4dF9iZXR3ZWVuClRvOiBnY2MtcGF0Y2hlc0Bn Y2MuZ251Lm9yZwoKVGhlIGMrKy1jb250cmFjdHMgYnJhbmNoIHVzZXMgdGhpcyB0byByZXRyaWV2 ZSB0aGUgc291cmNlIGZvcm0gb2YgdGhlCmNvbnRyYWN0IHByZWRpY2F0ZSwgdG8gYmUgcmV0dXJu ZWQgYnkgY29udHJhY3RfdmlvbGF0aW9uOjpjb21tZW50KCkuCgpDby1hdXRob3JlZC1ieTogSmFz b24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgpnY2MvQ2hhbmdlTG9nOgoKCSogaW5wdXQu Y2MgKGdldF9zb3VyY2VfdGV4dF9iZXR3ZWVuKTogTmV3IGZuLgoJKiBpbnB1dC5oIChnZXRfc291 cmNlX3RleHRfYmV0d2Vlbik6IERlY2xhcmUuCi0tLQogZ2NjL2lucHV0LmggIHwgIDEgKwogZ2Nj L2lucHV0LmNjIHwgOTIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCA5MyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0 IGEvZ2NjL2lucHV0LmggYi9nY2MvaW5wdXQuaAppbmRleCAxMWM1NzFkMDc2Zi4uZjE4NzY5OTUw YjUgMTAwNjQ0Ci0tLSBhL2djYy9pbnB1dC5oCisrKyBiL2djYy9pbnB1dC5oCkBAIC0xMTEsNiAr MTExLDcgQEAgY2xhc3MgY2hhcl9zcGFuCiB9OwogCiBleHRlcm4gY2hhcl9zcGFuIGxvY2F0aW9u X2dldF9zb3VyY2VfbGluZSAoY29uc3QgY2hhciAqZmlsZV9wYXRoLCBpbnQgbGluZSk7CitleHRl cm4gY2hhciAqZ2V0X3NvdXJjZV90ZXh0X2JldHdlZW4gKGxvY2F0aW9uX3QsIGxvY2F0aW9uX3Qp OwogCiBleHRlcm4gYm9vbCBsb2NhdGlvbl9taXNzaW5nX3RyYWlsaW5nX25ld2xpbmUgKGNvbnN0 IGNoYXIgKmZpbGVfcGF0aCk7CiAKZGlmZiAtLWdpdCBhL2djYy9pbnB1dC5jYyBiL2djYy9pbnB1 dC5jYwppbmRleCBhMjhhYmZhYzVhYy4uYzE4NWJkNzRjMWYgMTAwNjQ0Ci0tLSBhL2djYy9pbnB1 dC5jYworKysgYi9nY2MvaW5wdXQuY2MKQEAgLTk0OSw2ICs5NDksOTggQEAgbG9jYXRpb25fZ2V0 X3NvdXJjZV9saW5lIChjb25zdCBjaGFyICpmaWxlX3BhdGgsIGludCBsaW5lKQogICByZXR1cm4g Y2hhcl9zcGFuIChidWZmZXIsIGxlbik7CiB9CiAKKy8qIFJldHVybiBhIE5VTC10ZXJtaW5hdGVk IGNvcHkgb2YgdGhlIHNvdXJjZSB0ZXh0IGJldHdlZW4gdHdvIGxvY2F0aW9ucywgb3IKKyAgIE5V TEwgaWYgdGhlIGFyZ3VtZW50cyBhcmUgaW52YWxpZC4gIFRoZSBjYWxsZXIgaXMgcmVzcG9uc2li bGUgZm9yIGZyZWVpbmcKKyAgIHRoZSByZXR1cm4gdmFsdWUuICAqLworCitjaGFyICoKK2dldF9z b3VyY2VfdGV4dF9iZXR3ZWVuIChsb2NhdGlvbl90IHN0YXJ0LCBsb2NhdGlvbl90IGVuZCkKK3sK KyAgZXhwYW5kZWRfbG9jYXRpb24gZXhwc3RhcnQgPQorICAgIGV4cGFuZF9sb2NhdGlvbl90b19z cGVsbGluZ19wb2ludCAoc3RhcnQsIExPQ0FUSU9OX0FTUEVDVF9TVEFSVCk7CisgIGV4cGFuZGVk X2xvY2F0aW9uIGV4cGVuZCA9CisgICAgZXhwYW5kX2xvY2F0aW9uX3RvX3NwZWxsaW5nX3BvaW50 IChlbmQsIExPQ0FUSU9OX0FTUEVDVF9GSU5JU0gpOworCisgIC8qIElmIHRoZSBsb2NhdGlvbnMg YXJlIGluIGRpZmZlcmVudCBmaWxlcyBvciB0aGUgZW5kIGNvbWVzIGJlZm9yZSB0aGUKKyAgICAg c3RhcnQsIGdpdmUgdXAgYW5kIHJldHVybiBub3RoaW5nLiAgKi8KKyAgaWYgKCFleHBzdGFydC5m aWxlIHx8ICFleHBlbmQuZmlsZSkKKyAgICByZXR1cm4gTlVMTDsKKyAgaWYgKHN0cmNtcCAoZXhw c3RhcnQuZmlsZSwgZXhwZW5kLmZpbGUpICE9IDApCisgICAgcmV0dXJuIE5VTEw7CisgIGlmIChl eHBzdGFydC5saW5lID4gZXhwZW5kLmxpbmUpCisgICAgcmV0dXJuIE5VTEw7CisgIGlmIChleHBz dGFydC5saW5lID09IGV4cGVuZC5saW5lCisgICAgICAmJiBleHBzdGFydC5jb2x1bW4gPiBleHBl bmQuY29sdW1uKQorICAgIHJldHVybiBOVUxMOworICAvKiBUaGVzZSBhcmVuJ3QgcmVhbCBjb2x1 bW4gbnVtYmVycywgZ2l2ZSB1cC4gICovCisgIGlmIChleHBzdGFydC5jb2x1bW4gPT0gMCB8fCBl eHBlbmQuY29sdW1uID09IDApCisgICAgcmV0dXJuIE5VTEw7CisKKyAgLyogRm9yIGEgc2luZ2xl IGxpbmUgd2UgbmVlZCB0byB0cmltIGJvdGggZWRnZXMuICAqLworICBpZiAoZXhwc3RhcnQubGlu ZSA9PSBleHBlbmQubGluZSkKKyAgICB7CisgICAgICBjaGFyX3NwYW4gbGluZSA9IGxvY2F0aW9u X2dldF9zb3VyY2VfbGluZSAoZXhwc3RhcnQuZmlsZSwgZXhwc3RhcnQubGluZSk7CisgICAgICBp ZiAobGluZS5sZW5ndGggKCkgPCAxKQorCXJldHVybiBOVUxMOworICAgICAgaW50IHMgPSBleHBz dGFydC5jb2x1bW4gLSAxOworICAgICAgaW50IGxlbiA9IGV4cGVuZC5jb2x1bW4gLSBzOworICAg ICAgaWYgKGxpbmUubGVuZ3RoICgpIDwgKHNpemVfdClleHBlbmQuY29sdW1uKQorCXJldHVybiBO VUxMOworICAgICAgcmV0dXJuIGxpbmUuc3Vic3BhbiAocywgbGVuKS54c3RyZHVwICgpOworICAg IH0KKworICBzdHJ1Y3Qgb2JzdGFjayBidWZfb2JzdGFjazsKKyAgb2JzdGFja19pbml0ICgmYnVm X29ic3RhY2spOworCisgIC8qIExvb3AgdGhyb3VnaCBhbGwgbGluZXMgaW4gdGhlIHJhbmdlIGFu ZCBhcHBlbmQgZWFjaCB0byBidWY7IG1heSB0cmltCisgICAgIHBhcnRzIG9mIHRoZSBzdGFydCBh bmQgZW5kIGxpbmVzIG9mZiBkZXBlbmRpbmcgb24gY29sdW1uIHZhbHVlcy4gICovCisgIGZvciAo aW50IGxudW0gPSBleHBzdGFydC5saW5lOyBsbnVtIDw9IGV4cGVuZC5saW5lOyArK2xudW0pCisg ICAgeworICAgICAgY2hhcl9zcGFuIGxpbmUgPSBsb2NhdGlvbl9nZXRfc291cmNlX2xpbmUgKGV4 cHN0YXJ0LmZpbGUsIGxudW0pOworICAgICAgaWYgKGxpbmUubGVuZ3RoICgpIDwgMSAmJiAobG51 bSAhPSBleHBzdGFydC5saW5lICYmIGxudW0gIT0gZXhwZW5kLmxpbmUpKQorCWNvbnRpbnVlOwor CisgICAgICAvKiBGb3IgdGhlIGZpcnN0IGxpbmUgaW4gdGhlIHJhbmdlLCBvbmx5IHN0YXJ0IGF0 IGV4cHN0YXJ0LmNvbHVtbiAqLworICAgICAgaWYgKGxudW0gPT0gZXhwc3RhcnQubGluZSkKKwl7 CisJICB1bnNpZ25lZCBvZmYgPSBleHBzdGFydC5jb2x1bW4gLSAxOworCSAgaWYgKGxpbmUubGVu Z3RoICgpIDwgb2ZmKQorCSAgICByZXR1cm4gTlVMTDsKKwkgIGxpbmUgPSBsaW5lLnN1YnNwYW4g KG9mZiwgbGluZS5sZW5ndGgoKSAtIG9mZik7CisJfQorICAgICAgLyogRm9yIHRoZSBsYXN0IGxp bmUsIGRvbid0IGdvIHBhc3QgZXhwZW5kLmNvbHVtbiAqLworICAgICAgZWxzZSBpZiAobG51bSA9 PSBleHBlbmQubGluZSkKKwl7CisJICBpZiAobGluZS5sZW5ndGggKCkgPCAoc2l6ZV90KWV4cGVu ZC5jb2x1bW4pCisJICAgIHJldHVybiBOVUxMOworCSAgbGluZSA9IGxpbmUuc3Vic3BhbiAoMCwg ZXhwZW5kLmNvbHVtbik7CisJfQorCisgICAgICAvKiBDb21iaW5lIHNwYWNlcyBhdCB0aGUgYmVn aW5uaW5nIG9mIGxhdGVyIGxpbmVzLiAgKi8KKyAgICAgIGlmIChsbnVtID4gZXhwc3RhcnQubGlu ZSkKKwl7CisJICB1bnNpZ25lZCBvZmY7CisJICBmb3IgKG9mZiA9IDA7IG9mZiA8IGxpbmUubGVu Z3RoKCk7ICsrb2ZmKQorCSAgICBpZiAobGluZVtvZmZdICE9ICcgJyAmJiBsaW5lW29mZl0gIT0g J1x0JykKKwkgICAgICBicmVhazsKKwkgIGlmIChvZmYgPiAwKQorCSAgICB7CisJICAgICAgb2Jz dGFja18xZ3JvdyAoJmJ1Zl9vYnN0YWNrLCAnICcpOworCSAgICAgIGxpbmUgPSBsaW5lLnN1YnNw YW4gKG9mZiwgbGluZS5sZW5ndGgoKSAtIG9mZik7CisJICAgIH0KKwl9CisKKyAgICAgIC8qIFRo aXMgZG9lcyBub3QgaW5jbHVkZSBhbnkgdHJhaWxpbmcgbmV3bGluZXMuICAqLworICAgICAgb2Jz dGFja19ncm93ICgmYnVmX29ic3RhY2ssIGxpbmUuZ2V0X2J1ZmZlciAoKSwgbGluZS5sZW5ndGgg KCkpOworICAgIH0KKworICAvKiBOVUwtdGVybWluYXRlIGFuZCBmaW5pc2ggdGhlIGJ1ZiBvYnN0 YWNrLiAgKi8KKyAgb2JzdGFja18xZ3JvdyAoJmJ1Zl9vYnN0YWNrLCAwKTsKKyAgY29uc3QgY2hh ciAqYnVmID0gKGNvbnN0IGNoYXIgKikgb2JzdGFja19maW5pc2ggKCZidWZfb2JzdGFjayk7CisK KyAgcmV0dXJuIHhzdHJkdXAgKGJ1Zik7Cit9CisKIC8qIERldGVybWluZSBpZiBGSUxFX1BBVEgg bWlzc2luZyBhIHRyYWlsaW5nIG5ld2xpbmUgb24gaXRzIGZpbmFsIGxpbmUuCiAgICBPbmx5IHZh bGlkIHRvIGNhbGwgb25jZSBhbGwgb2YgdGhlIGZpbGUgaGFzIGJlZW4gbG9hZGVkLCBieQogICAg cmVxdWVzdGluZyBhIGxpbmUgbnVtYmVyIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBmaWxlLiAgKi8K LS0gCjIuMzEuMQoK --------------UZ31fWv9NzsAO0QViP0IZ4Cb--