From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm1-f66.google.com (mail-wm1-f66.google.com [209.85.128.66]) by sourceware.org (Postfix) with ESMTPS id A5F78384607A for ; Thu, 27 Aug 2020 11:20:53 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org A5F78384607A Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=palves.net Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=alves.ped@gmail.com Received: by mail-wm1-f66.google.com with SMTP id u18so4803229wmc.3 for ; Thu, 27 Aug 2020 04:20:53 -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=o8CdYwXz8WnzNoTIuxRaaVPxDi6n3FJSOwoHcaQZFho=; b=Mb9InHVV4DMbTKatVsBCP/9dNMNfkL0xLdt+FxTsru3GPPBUxnAmrQP2QcfjShP9mr JUOvi/CE6q64NaA0KJPaCQ1cYNTJsV8Qzb9/bnBf4TlNm6xjdYz41Lf/Mw6wbCbSpsdI HPMv183IhunIgtwLhkUFKG1HkGrKx5hsbT0QJW7g7L9DC9ijD0xovnOlciFVGk2dJ5SJ 5XvjJZzrewKXMUKbJWs8+uDCdfxbCwUPgzEmaLU6WPtRmt2wGdo91Lvo2gRdfjHFjGc1 nkBZ2iwArGV9i3931dEu7Qlzuic93hMwhaN1WWb48iiqc2UPMVbQxzRKAK6z+Vs++S4g pyaQ== X-Gm-Message-State: AOAM531OW/1mDwW3uBNPUNPFjRpdNZPvswnmxcZp5EfTZqlmxobqvtH/ ST4W31xctQ10KqK2vN1vqsguH4Cw3pRoJg== X-Google-Smtp-Source: ABdhPJySNIEqtOw0fC4WczGAvjEVaBJkl40GdkUEc16Pv9of8oE1WY5k5T5Du8fdculvi6Xopv+fKw== X-Received: by 2002:a1c:a70c:: with SMTP id q12mr11476876wme.89.1598527252054; Thu, 27 Aug 2020 04:20:52 -0700 (PDT) Received: from ?IPv6:2001:8a0:f905:5600:56ee:75ff:fe8d:232b? ([2001:8a0:f905:5600:56ee:75ff:fe8d:232b]) by smtp.gmail.com with ESMTPSA id q18sm4528916wmc.21.2020.08.27.04.20.50 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 27 Aug 2020 04:20:51 -0700 (PDT) Subject: Re: [PATCH v2] Enable gdb.cp/ambiguous.exp with GCC and clang To: Gary Benson , Luis Machado References: <1597670664-14171-1-git-send-email-gbenson@redhat.com> <4b7a4f2e-9e77-495a-759b-187aebb342aa@palves.net> <20200825142146.GA14101@blade.nx> <20200827103901.GA9478@blade.nx> Cc: gdb-patches@sourceware.org From: Pedro Alves Message-ID: Date: Thu, 27 Aug 2020 12:20:49 +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: <20200827103901.GA9478@blade.nx> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-4.5 required=5.0 tests=BAYES_00, FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS, KAM_DMARC_STATUS, NICE_REPLY_A, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, 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: Thu, 27 Aug 2020 11:20:55 -0000 On 8/27/20 11:39 AM, Gary Benson wrote: > Luis Machado wrote: >> On 8/25/20 11:21 AM, Gary Benson via Gdb-patches wrote: >>> Pedro Alves wrote: >>>> On 8/17/20 2:24 PM, Gary Benson wrote: >>>>> Pedro Alves wrote: >>>>>> On 7/27/20 2:09 PM, Gary Benson via Gdb-patches wrote: >>>>>>> + unsupported "compiler does not support -Wno-inaccessible-base" >>>>>> >>>>>> How about instead of bailing out, use "-Wno-inaccessible-base" >>>>>> with GCC >= 10, and use "-w" with older GCCs? >>>>> >>>>> Sure. How about this? >>>> >>>> OK. >>> >>> Thanks, I pushed it. >> >> I get the following, under Ubuntu 18.04 (GCC 7.x) with this commit... >> >> FAIL: gdb.cp/ambiguous.exp: print x.x >> FAIL: gdb.cp/ambiguous.exp: print n.x >> FAIL: gdb.cp/ambiguous.exp: print j.x >> FAIL: gdb.cp/ambiguous.exp: print jva1.x >> FAIL: gdb.cp/ambiguous.exp: print jva2.x >> FAIL: gdb.cp/ambiguous.exp: print (A1)j >> FAIL: gdb.cp/ambiguous.exp: print (A1)jva1 >> >> Is the test really supposed to run with older GCC's? > > Maybe not. Though, I don't know what version of GCC it ought to start > working on, so it's hard to know what to do. I could leave the "-w" > in for GCC < 10, and add an extra check to make it bail out for GCC > <= your version, Luis? With a suitable comment to mention that that's > not set in stone? I'm seeing it fail with GCC 9 and clang 10 as well. Actually, the testcase can't be working _anywhere_. It's testing a feature that is gone from GDB. The testcase come in with the HP merge: +Sun Jan 10 23:44:11 1999 David Taylor + + + The following files are part of the HP merge; some had longer + names at HP, but have been renamed to be no more than 14 + characters in length. Looking at the tree back then, we had: /* Helper function used by value_struct_elt to recurse through baseclasses. Look for a field NAME in ARG1. Adjust the address of ARG1 by OFFSET bytes, and search in it assuming it has (class) type TYPE. If found, return value, else return NULL. If LOOKING_FOR_BASECLASS, then instead of looking for struct fields, look for a baseclass named NAME. */ static value_ptr search_struct_field (name, arg1, offset, type, looking_for_baseclass) char *name; register value_ptr arg1; int offset; register struct type *type; int looking_for_baseclass; { int found = 0; char found_class[1024]; value_ptr v; struct type *vbase = NULL; found_class[0] = '\000'; v = search_struct_field_aux (name, arg1, offset, type, looking_for_baseclass, &found, found_class, &vbase); if (found > 1) warning ("%s ambiguous; using %s::%s. Use a cast to disambiguate.", name, found_class, name); return v; } But search_struct_field does not handle the ambiguous field case nowadays. Somehow it got lost over the years. That seems like a regression. I wrote up a patch that adds it back (though different), but it exposed other latent bugs... Sigh. I'll post it soon. Thanks, Pedro Alves