From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19735 invoked by alias); 26 Aug 2011 18:17:11 -0000 Received: (qmail 19727 invoked by uid 22791); 26 Aug 2011 18:17:11 -0000 X-SWARE-Spam-Status: No, hits=-6.4 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_HI,RP_MATCHES_RCVD,SPF_HELO_PASS X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 26 Aug 2011 18:16:55 +0000 Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p7QIGsdU010440 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Fri, 26 Aug 2011 14:16:54 -0400 Received: from valrhona.uglyboxes.com (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id p7QIGqB2005229 (version=TLSv1/SSLv3 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO); Fri, 26 Aug 2011 14:16:53 -0400 Message-ID: <4E57E314.7000803@redhat.com> Date: Fri, 26 Aug 2011 18:17:00 -0000 From: Keith Seitz User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:6.0) Gecko/20110816 Thunderbird/6.0 MIME-Version: 1.0 To: Tom Tromey CC: gdb-patches@sourceware.org Subject: Re: [RFC] 12266 Fallout References: <4E56D4A3.7000306@redhat.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2011-08/txt/msg00501.txt.bz2 On 08/26/2011 11:05 AM, Tom Tromey wrote: > I don't understand why check_typedef would necessarily be involved. > If we changed the canonicalizer to respect this ABI rule about std:: > names, then wouldn't std::string be the type's actual name? > And so we wouldn't have to change check_typedef? Yes, we could make that modification to cp-name-parser.y (and also add something to turn std::basic_{string, ostream, istream, iostream} back into std::{string, ostream, istream, iostream}. > In any case, isn't #3 the best approach? That is, separating the search > key from the print name, and making the print name closer to what users > expect. I think we should always be considering what end state we want > to be in, and this seems to be it. I'm all about the "end result" (which is why I mentioned that gdb should be printing "calltest(foo)"). But the crux of the matter is still whether we should store "calltest(std::string)" or "calltest(std::basic_string<...>)" in the symbol table. That's all. The later is a "quick fix," but I am attempting (poorly) to also argue that it is the correct way to do it. > If you are looking for a quick fix, but plan to do #3, then #1 is fine > by me. The two go hand-in-hand IMO. Let me work up a patch and publish it on an archer branch. This will contain both the print name and DMGL_VERBOSE patches in one. Alas, the print name stuff is rather in limbo right now, so it may take me much of the day to fix it up and get this all published. But I will try to get something pushed before you leave EOD. Keith