Commit bdd04f5f authored by Piotr Caban's avatar Piotr Caban Committed by Alexandre Julliard

msvcrt: Add partial support for managed handle demangling.

parent 5af51ce0
......@@ -1320,6 +1320,10 @@ static void test_demangle(void)
/* 147 */ {"?ptititi4@@3PETtititi@@IET1@", "unsigned int const volatile tititi::* __ptr64 const volatile __ptr64 ptititi4"},
/* 148 */ {"?ptititi4v@@3RETtititi@@IET1@", "unsigned int const volatile tititi::* __ptr64 const volatile __ptr64 ptititi4v"},
/* 149 */ {"?meth@AAA@@QFCEXXZ", "public: void __thiscall AAA::meth(void)volatile __unaligned "},
/* 150 */ {"?RegisterModuleUninitializer@<CrtImplementationDetails>@@YAXP$AAVEventHandler@System@@@Z",
"void __cdecl <CrtImplementationDetails>::RegisterModuleUninitializer(class System::EventHandler ^)"},
/* 151 */ {"?RegisterModuleUninitializer@<CrtImplementationDetails>@@YAXBE$AAVEventHandler@System@@@Z",
"void __cdecl <CrtImplementationDetails>::RegisterModuleUninitializer(class System::EventHandler % __ptr64 volatile)"},
};
int i, num_test = ARRAY_SIZE(test);
char* name;
......
......@@ -519,6 +519,28 @@ static BOOL get_qualified_type(struct datatype_t *ct, struct parsed_symbol* sym,
ct->right = NULL;
ct->flags = 0;
/* parse managed handle information */
if (sym->current[0] == '$' && sym->current[1] == 'A')
{
sym->current += 2;
switch (qualif)
{
case 'A':
case 'B':
ref = " %";
break;
case 'P':
case 'Q':
case 'R':
case 'S':
ref = " ^";
break;
default:
return FALSE;
}
}
if (get_qualifier(sym, &xdt2, &class))
{
unsigned mark = sym->stack.num;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment