This is the mail archive of the gdb@sources.redhat.com 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]

Re: So what is wrong with v3 C++


Daniel Berlin writes:

> The thing is, it shouldn't match against demangled forms, it should
> match against *fully qualified* forms.

Ah, I feel some illumination coming on.

> Aclass a;
> int c;
> c = int a::george(int, int)(5, 6);
> 
> That's what we've got now.

gdb's goal is to have an expression evaluator that is some reasonable
subset of the language under test.

In K & R C, the translation from "demangled" -> "fully qualified" is trivial.
In ANSI C, the translation from "demangled" -> "fully qualified" takes work.
  You have to convert "foo(int, int)" -> "foo".
  This conversion is actually built into a string matcher!
In C++, the translation from "demangled" -> "fully qualified" is hairy.
  There are a lot of cases and changing the string matchers is hopeless.

It sounds like we need a much more detailed demangler interface, where
the demangler gives us the demangled name, the fully qualified name,
plus any other forms of the name we care about.

Michael


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