This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH v3] gdb: CTF support


On 04-10-19 00:56, Weimin Pan wrote:
> +/* The routines that read and process fields/members of a C struct, union,
> +   or enumeration, pass lists of data member fields in an instance of a
> +   field_info structure. It is derived from dwarf2read.c.  */
> +
> +struct nextfield
> +{
> +  struct field field {};
> +};
> +
> +struct field_info

Hi,

not only is field_info derived from dwarf2read.c, it uses the same name
for the type.  This is a C++ One-Definition-Rule violation, which causes
most of the test-suite to start failing for me.

What happens is that here:
...
  if (die->child != NULL && ! die_is_declaration (die, cu))
    {
      struct field_info fi;
      std::vector<struct symbol *> template_args;
...
the constructor for field_info is called, but it calls the constructor
for field_info defined in ctfread.c rather than dwarf2read.c.

Thanks,
- Tom


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]