From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) by sourceware.org (Postfix) with ESMTP id 1253C385BF83 for ; Tue, 31 Mar 2020 19:28:32 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 1253C385BF83 Received: from mail-ed1-f70.google.com (mail-ed1-f70.google.com [209.85.208.70]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-281-eeCxVrNtMzqmeN45xfz1og-1; Tue, 31 Mar 2020 15:28:29 -0400 X-MC-Unique: eeCxVrNtMzqmeN45xfz1og-1 Received: by mail-ed1-f70.google.com with SMTP id ce13so19282971edb.11 for ; Tue, 31 Mar 2020 12:28:29 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:cc:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=Jr++N67h6t6EWtADY5sn0MH5jVpsGyaE+e3cZoARbjo=; b=IbW8LcnX48fG34b+p4NXMMbQVlBUTs8rubrC5mNzobsbsg0On40YdkwNyOWFJYpvtV 8oWLVKKQVj5ATaeEQb1e1MaOC4OHdCPhnMRthPk11KNG5ceUQMLYGozKyOQ11n+CvaZ6 xDpVdbTT2GvaIbAH1X1JfW+vOw4sEJuYYxBsA/iySf5a1Y8SJ3xWGu6lM1MZWOZMsZWs WlsCCOr7fN0JxAtzFv0WWChmAhQBC0BeQxE6TULpDRwHjv5yaob8B4/C/bXGCj9zNcqO olvy46OFJ7zAgxFipQzum0ILdSK8pTQl9QqpyQ0YspVQSqPRQKpCBcbTUs3MO04zMH/B +eFw== X-Gm-Message-State: ANhLgQ2AJ0U6jmK5mYCWmK2e/By2gn5GsAVhQAeTyPaQPSnk/FvGMFY4 R3lZ9sAywCOHQcUiodVUPI2+anzxbL9ZID38zknFS7LHUdxAq7uSxeNUX1RgBFFNwzRys4D4KYI Eh4m65yfgO9W07hhGFTIrTg== X-Received: by 2002:a17:906:340d:: with SMTP id c13mr16931306ejb.185.1585682908411; Tue, 31 Mar 2020 12:28:28 -0700 (PDT) X-Google-Smtp-Source: ADFU+vtH21+gbd8Lj2E3hJq9uckaVqrE5MHA0fmGuTWAhtu+2tq6x5rsk5mZS9h4qItGnCQ9TtBCyA== X-Received: by 2002:a17:906:340d:: with SMTP id c13mr16931291ejb.185.1585682908201; Tue, 31 Mar 2020 12:28:28 -0700 (PDT) Received: from ?IPv6:2001:8a0:f909:7b00:56ee:75ff:fe8d:232b? ([2001:8a0:f909:7b00:56ee:75ff:fe8d:232b]) by smtp.gmail.com with ESMTPSA id m3sm2320838ejj.22.2020.03.31.12.28.27 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 31 Mar 2020 12:28:27 -0700 (PDT) Subject: Re: [PATCH 2/2] Avoid copying in lookup_name_info To: Tom Tromey References: <20200320204935.19509-1-tromey@adacore.com> <20200320204935.19509-3-tromey@adacore.com> <87wo70baqu.fsf@tromey.com> <87a73wbaji.fsf@tromey.com> Cc: gdb-patches@sourceware.org From: Pedro Alves Message-ID: <2f437216-b606-dc30-5775-478af47dbbaf@redhat.com> Date: Tue, 31 Mar 2020 20:28:26 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.2.1 MIME-Version: 1.0 In-Reply-To: <87a73wbaji.fsf@tromey.com> Content-Language: en-US X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-7.9 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Mar 2020 19:28:33 -0000 On 3/31/20 8:15 PM, Tom Tromey wrote: >>>>>> "Tom" == Tom Tromey writes: > > Pedro> And if we do that, do we have any case where we really need the > Pedro> "std::string &&" overload? > > Tom> Indeed we don't seem to need this. > > Actually, I am wrong, there is a spot in ada-lang.c: > > lookup_name_info name1 (std::string ("<_ada_") + name + '>', > symbol_name_match_type::FULL); > > What's concerning is that this compiles even without the && overload, > presumably by just violating the lifetime requirement of lookup_name_info. > > So, I think leaving the && version in-place is best. Alternatively, you could delete the && version, like: lookup_name_info (std::string &&name, ......) = delete; I think that would catch that case, making it fail to compile, forcing us to write: std::string str = std::string ("<_ada_") + name + '>'; lookup_name_info name1 (str, symbol_name_match_type::FULL); I think I'd slightly prefer that for making lookup_name_info's contract easier to grok, though I'll leave it to you. Thanks, Pedro Alves