This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


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

demangler bug


This c++ file, when compiled by fairly recent CVS sources, produces a
symbol which the current c++filt program can not demangle.

==================================================
namespace n
{
  class c
  {
  public:
    int m ();
  };
};

int
fn (n::c *ca, int (n::c::* pfn) ())
{
  return (ca->*pfn) ();
}
==================================================

The symbol is
    fn__FPQ21n1cPMQ21n1cFPQ21n1c_i

The symbol looks more or less correct, and I think it should demangle
to something like
    fn (n::c *, int (n::c::*) (n::c *))

The bug appears to be that cplus-dem.c does not expect to see 'Q'
after 'M'.  It only expects to see a digit, 'X', 'Y', or 't'.

Ian


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