Commits
Enrico Granata committed 144ecb0b068
The previous implementation of the demangler treated allocating vs. initializing constructors in a way that is highly inconvenient from a debugger perspective. The user-specified constructor() and destructor() were marked with an extra attribute (initializing and destroying) for classes, vs. the allocating and deallocating destructors which had no extra cruft (but hardly anyone would care about them since they are system-provided) This checkin (discussed with Joe Groff changes) the behavior of the demangler such that the user's constructors and destructors now demangle as one would expect: ; CHECK: _TC3foo3barcfMS0_FT_S0_ ---> foo.bar.constructor : (foo.bar.metatype)() -> foo.bar ; CHECK: _TC3foo3bard ---> foo.bar.destructor and the system-provided allocator/deallocator demangles with a clearly distinguishable name: ; CHECK: _TC3foo3barCfMS0_FT_S0_ ---> foo.bar.__allocating_constructor : (foo.bar.metatype)() -> foo.bar ; CHECK: _TC3foo3barD ---> foo.bar.__deallocating_destructor Swift SVN r6573