Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Pedro Alves <pedro@palves.net>
To: Gary Benson <gbenson@redhat.com>, Luis Machado <luis.machado@linaro.org>
Cc: gdb-patches@sourceware.org
Subject: Re: [PATCH v2] Enable gdb.cp/ambiguous.exp with GCC and clang
Date: Thu, 27 Aug 2020 12:20:49 +0100	[thread overview]
Message-ID: <dc7da0e4-5d22-8cce-b8a6-d4ceb1c04871@palves.net> (raw)
In-Reply-To: <20200827103901.GA9478@blade.nx>

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,
Pedro Alves


  reply	other threads:[~2020-08-27 11:20 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 [this message]
2020-08-27 11:25               ` Luis Machado
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=dc7da0e4-5d22-8cce-b8a6-d4ceb1c04871@palves.net \
    --to=pedro@palves.net \
    --cc=gbenson@redhat.com \
    --cc=gdb-patches@sourceware.org \
    --cc=luis.machado@linaro.org \
    /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