> On Aug 12, 2016, at 4:59 PM, Richard Smith <[email protected]> wrote: > > C++17 decomposition declarations are (surprisingly) permitted at global > scope. They can't be forward-declared nor made inline (yet...), and it seems > likely that the wording probably didn't *mean* to allow them to be declared > as templates, so we don't appear to need a cross-vendor mangling for them. > However, establishing a convention would be useful for demanglers. > > For now, I'm mangling global decomposition declarations as: > > <unqualified-name> ::= DC <source-name>* E > > ... where the <source-name>s are the names of the bindings. (I'm mangling the > bindings in the obvious way, as if they were reference declarations, but they > get a mangled name even at global scope.) > > We could get away with mangling only the name of the first binding, but the > extra information seems useful to people looking at the mangled name. > > Thoughts? Is it worth specifying this in the ABI?
For those of us who aren't following the standards process that closely, would you mind explaining the more basic ABI impact of the feature? Are the individual bindings separate objects that should be mangled as it they were actually declared separately, and so this compound mangling only serves to uniquely identify the initializer in case it contains entities that need / ought to be mangled? John. _______________________________________________ cxx-abi-dev mailing list [email protected] http://sourcerytools.com/cgi-bin/mailman/listinfo/cxx-abi-dev
