Allow function types as template parameters in name canonicalizer
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>
This commit is contained in:
parent
a4b7c5f5cd
commit
3b099df59c
2 changed files with 4 additions and 7 deletions
|
@ -596,6 +596,7 @@ template_arg : typespec_2
|
|||
| '&' '(' start ')'
|
||||
{ $$ = state->fill_comp (DEMANGLE_COMPONENT_UNARY, state->make_operator ("&", 1), $3); }
|
||||
| exp
|
||||
| function
|
||||
;
|
||||
|
||||
function_args : typespec_2
|
||||
|
@ -2062,6 +2063,9 @@ canonicalize_tests ()
|
|||
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
|
||||
|
|
|
@ -2186,15 +2186,8 @@ test_cp_remove_params ()
|
|||
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");
|
||||
|
|
Loading…
Add table
Reference in a new issue