[Issue 6045] Unable to demangle symbols

d-bugmail at puremagic.com d-bugmail at puremagic.com
Tue Sep 6 12:13:18 PDT 2011


http://d.puremagic.com/issues/show_bug.cgi?id=6045


Sean Kelly <sean at invisibleduck.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |sean at invisibleduck.org


--- Comment #2 from Sean Kelly <sean at invisibleduck.org> 2011-09-06 12:13:06 PDT ---
Is that second symbol really valid?  Here's a brief run-down of one pertinent
portion of the parse, given:

70__T15SqlitePersisterTS8serenity9persister6Sqlite11__unittest6FZ

The format for a TemplateInstanceName is:

Number __T LName TemplateArgs Z

So we pick off '70' as Number, match the '__T', pick out the LName of
"SqlitePersister", then match a template arg (which begin with a 'T', 'V', or
'S') to get "serenity.persister.Sqlite.__unittest6".  At this point we expect a
'T', 'V', or 'S' if there's another template arg to parse... there isn't one,
so we jump back to parsing the TemplateInstance name and expect a 'Z' to
terminate the name.  We find an 'F' instead, so this isn't a template name and
so we assume that this is a weird qualified name instead.

Is there some use of the 'F' that the ABI doesn't mention?  Otherwise I think
core.demangle is currently correct in its treatment of the second symbol.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list