Re: Expected output of gdb.cp/no-dmgl-verbose.exp
Luis Machado via Gdb <[email protected]>
| Newsgroups | gmane.comp.gdb.devel |
|---|---|
| Message-ID | <[email protected]> |
On 4/12/21 3:45 PM, Keith Seitz wrote: > On 4/12/21 11:16 AM, Luis Machado via Gdb wrote: >> I'm trying to determine why this particular test is failing (for both >> aarch64-linux and x86_64-linux on Ubuntu 18.04/20.04) and what the >> expected outcome is. >> >> In my case, the only symbol I see for function "f" is the following: >> >> "f(std::__cxx11::basic_string<char, std::char_traits<char>, >> std::allocator<char> >)" >> >> There is no "f(std::string)" nor "f(std::basic_string<char, >> std::char_traits<char>, std::allocator<char> >)" symbol. >> > > Wow, such a long time ago! IIRC... Indeed. I vaguely remember that, back in ~2011 IIRC. But obviously not enough to figure out what was going on. > > This test was written to ensure that "std::string" was used > instead of "std::basic_string<...>" (which is now called something > else again). Something about "that's what nm and other tools tell users, > so we should not mention the symbol's real (linkage) name, either." > > The "no-dmgl-verbose" refers to the DMGL_VERBOSE option > of the demangler, which does this. > > There is even special logic in our typedef-replacing machinery to > enforce this. [NOTE: `ignore_typedefs' in cp-support.c is also "out- > of-date" wrt to this naming change. So none of that has likely been > "working" for many years, but then at very quick glance, "nm -C" doesn't > do this anymore, either.] Ah, that makes it much more clear. Thanks for the explanation. > > I was against it then, so I certainly do not mind getting rid of this test > or limiting it to C++ installations that typedef the "older" std::basic_string<...> > to std::string. I think keeping it may be more confusing than useful. I'll propose its removal on gdb-patches@ and we'll see where we go from there. Thanks Keith. > > Keith >