Your std::remove_if would be more concise if it used a lambda instead of IsNotEnableIfAttr. On Sun Mar 09 2014 at 10:30:45 AM, Nick Lewycky <[email protected]> wrote:
> The attached mangle-enable_if-1.patch adds a mangling for > __attribute__((enable_if(expr, string-literal))) to clang. > > demangle-enable_if-1.patch adds support to libcxxabi's demangler. This > patch I'm not very confident in. libcxxabi's cxa_demangle lacks comments > and assertions, leaving its design criteria a mystery. I think the > functions return 'first' in case of error. I added a vector<> inside the > demangler, I don't know whether that's OK because it means doing > allocation. I don't know what the two strings in the pair in db.names > are for, but the first one appears to be the demangling so I put it > there. I don't understand what the members in 'db' are for, since they > aren't commented (db.tag_templates?). The code is cargo culted from > parse_template_args and simplified down by making wild assumptions > (db.tag_templates is always false!) and constant folding. > > Also the demangler seems pretty buggy. It wraps expressions in extra > parentheses which don't correspond to pi .. E expressions (if you were > to remangle it, you'd get the extra pi .. E). A mangling for "&function" > ends up demangling "&(function())" which has different semantic meaning. > I'm assuming these problems are pre-existing. While "_Z3foo" demangles > to "foo" and "_Z3foov" demangles to "foo()", the same things with an > attribute demangle to include parens. For example, "_Z3fooUa3bar" and > "_Z3fooUa3barv" both demangle to "foo() __attribute__((bar))", never > "foo __attribute__((bar))". > > Finally, I've never even compiled the change to the tests. I have tested > those exact manglings and seen what cxa_demangle does to them, but it > was easier to write a standalone tool than to deal with "testit". > > Please review! > > Nick > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits >
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
