This adds function types as template parameters in the C++ name
canonicalizer.
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=11907
Approved-By: John Baldwin <jhb@FreeBSD.org>
| '&' '(' start ')'
{ $$ = state->fill_comp (DEMANGLE_COMPONENT_UNARY, state->make_operator ("&", 1), $3); }
| exp
+ | function
;
function_args : typespec_2
should_be_the_same ("x::y::z<0b111>", "x::y::z<0D7>");
should_be_the_same ("x::y::z<0xff'ff>", "x::y::z<65535>");
+
+ should_be_the_same ("something<void ()>", "something< void() >");
+ should_be_the_same ("something<void ()>", "something<void (void)>");
}
#endif
CHECK_INCOMPL ("A::foo<(anonymous namespace)::B",
"A::foo");
- /* Shouldn't this parse? Looks like a bug in
- cp_demangled_name_to_comp. See PR c++/22411. */
-#if 0
CHECK ("A::foo<void(int)>::func(int)",
"A::foo<void(int)>::func");
-#else
- CHECK_INCOMPL ("A::foo<void(int)>::func(int)",
- "A::foo");
-#endif
CHECK_INCOMPL ("A::foo<void(int",
"A::foo");