From: Luis Machado <luis.machado@linaro.org>
To: Pedro Alves <pedro@palves.net>, Gary Benson <gbenson@redhat.com>
Cc: gdb-patches@sourceware.org
Subject: Re: [PATCH v2] Enable gdb.cp/ambiguous.exp with GCC and clang
Date: Thu, 27 Aug 2020 08:25:32 -0300 [thread overview]
Message-ID: <acc16f61-b0f2-7014-7df1-8b8eefa077f6@linaro.org> (raw)
In-Reply-To: <dc7da0e4-5d22-8cce-b8a6-d4ceb1c04871@palves.net>
On 8/27/20 8:20 AM, Pedro Alves wrote:
> 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 <taylor@texas.cygnus.com>
> +
> +
> + 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. I've reached the same conclusion. This is an artifact of the HP
merge back in the day. I see gdb.cp/ambiguous.exp (previously
gdb.c++/ambiguous.exp) was not updated to remove these cases like
gdb.cp/inherit.exp (previously gdb.c++/inherit.exp) was.
See commit ebac27b4c38 for example:
2004-01-29 Michael Chastain <mec.gnu@mindspring.com>
* gdb.cp/inherit.exp: Rewrite. Use gdb_test_multiple and gdb for
all tests. Remove old hp-ux and cygnus xfail cases.
next prev parent reply other threads:[~2020-08-27 11:25 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-27 13:09 [PATCH] Enable gdb.cp/ambiguous.exp with GCC >= 10.1 " Gary Benson
2020-08-07 15:27 ` Pedro Alves
2020-08-17 13:24 ` [PATCH v2] Enable gdb.cp/ambiguous.exp with GCC " Gary Benson
2020-08-17 14:00 ` Pedro Alves
2020-08-17 14:57 ` Gary Benson
2020-08-25 14:21 ` Gary Benson
2020-08-26 17:13 ` Luis Machado
2020-08-27 10:39 ` Gary Benson
2020-08-27 11:20 ` Pedro Alves
2020-08-27 11:25 ` Luis Machado [this message]
2020-08-27 15:07 ` Gary Benson
2020-08-27 15:47 ` Pedro Alves
2020-08-27 16:18 ` Gary Benson
2020-08-27 18:04 ` Pedro Alves
2020-09-11 13:59 ` Tom de Vries
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=acc16f61-b0f2-7014-7df1-8b8eefa077f6@linaro.org \
--to=luis.machado@linaro.org \
--cc=gbenson@redhat.com \
--cc=gdb-patches@sourceware.org \
--cc=pedro@palves.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox