mscvrt: Fix some undname quirks (space at the end of multi-level templates).
This commit is contained in:
parent
60b096f609
commit
d568c2ac56
|
@ -1033,7 +1033,7 @@ static void test_demangle(void)
|
||||||
/* 112 */ {"?f@T@@QAEHQAY2BE@BO@CI@D@Z", "public: int __thiscall T::f(char (* const)[20][30][40])"},
|
/* 112 */ {"?f@T@@QAEHQAY2BE@BO@CI@D@Z", "public: int __thiscall T::f(char (* const)[20][30][40])"},
|
||||||
/* 113 */ {"?f@T@@QAEHQAY1BE@BO@$$CBD@Z", "public: int __thiscall T::f(char const (* const)[20][30])"},
|
/* 113 */ {"?f@T@@QAEHQAY1BE@BO@$$CBD@Z", "public: int __thiscall T::f(char const (* const)[20][30])"},
|
||||||
/* 114 */ {"??0?$Foo@U?$vector_c@H$00$01$0?1$0A@$0A@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@@mpl@boost@@@@QAE@XZ",
|
/* 114 */ {"??0?$Foo@U?$vector_c@H$00$01$0?1$0A@$0A@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@@mpl@boost@@@@QAE@XZ",
|
||||||
"public: __thiscall Foo<struct boost::mpl::vector_c<int,1,2,-2,0,0,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647>>::Foo<struct boost::mpl::vector_c<int,1,2,-2,0,0,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647>>(void)"},
|
"public: __thiscall Foo<struct boost::mpl::vector_c<int,1,2,-2,0,0,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647> >::Foo<struct boost::mpl::vector_c<int,1,2,-2,0,0,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647> >(void)"},
|
||||||
|
|
||||||
};
|
};
|
||||||
int i, num_test = (sizeof(test)/sizeof(test[0]));
|
int i, num_test = (sizeof(test)/sizeof(test[0]));
|
||||||
|
|
|
@ -367,6 +367,7 @@ static char* get_args(struct parsed_symbol* sym, struct array* pmt_ref, BOOL z_t
|
||||||
struct datatype_t ct;
|
struct datatype_t ct;
|
||||||
struct array arg_collect;
|
struct array arg_collect;
|
||||||
char* args_str = NULL;
|
char* args_str = NULL;
|
||||||
|
char* last;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
str_array_init(&arg_collect);
|
str_array_init(&arg_collect);
|
||||||
|
@ -402,7 +403,8 @@ static char* get_args(struct parsed_symbol* sym, struct array* pmt_ref, BOOL z_t
|
||||||
args_str = str_printf(sym, "%s,%s", args_str, arg_collect.elts[i]);
|
args_str = str_printf(sym, "%s,%s", args_str, arg_collect.elts[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (close_char == '>' && args_str && args_str[strlen(args_str) - 1] == '>')
|
last = args_str ? args_str : arg_collect.elts[0];
|
||||||
|
if (close_char == '>' && last[strlen(last) - 1] == '>')
|
||||||
args_str = str_printf(sym, "%c%s%s %c",
|
args_str = str_printf(sym, "%c%s%s %c",
|
||||||
open_char, arg_collect.elts[0], args_str, close_char);
|
open_char, arg_collect.elts[0], args_str, close_char);
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue