perf tools: Preserve identifier id in OCaml demangler

Some OCaml developers reported that this bit of information is sometimes
useful for disambiguating functions for which the OCaml compiler assigns
the same name, e.g. nested or inlined functions.

Signed-off-by: Fabian Hemmer <copy@copy.sh>
Link: http://lore.kernel.org/lkml/20210226075223.p3s5oz4jbxwnqjtv@nyu
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
Fabian Hemmer 2021-02-26 02:52:23 -05:00 коммит произвёл Arnaldo Carvalho de Melo
Родитель b0a752d43b
Коммит 292c5ed168
2 изменённых файлов: 3 добавлений и 15 удалений

Просмотреть файл

@ -19,11 +19,11 @@ int test__demangle_ocaml(struct test *test __maybe_unused, int subtest __maybe_u
{ "main",
NULL },
{ "camlStdlib__array__map_154",
"Stdlib.array.map" },
"Stdlib.array.map_154" },
{ "camlStdlib__anon_fn$5bstdlib$2eml$3a334$2c0$2d$2d54$5d_1453",
"Stdlib.anon_fn[stdlib.ml:334,0--54]" },
"Stdlib.anon_fn[stdlib.ml:334,0--54]_1453" },
{ "camlStdlib__bytes__$2b$2b_2205",
"Stdlib.bytes.++" },
"Stdlib.bytes.++_2205" },
};
for (i = 0; i < ARRAY_SIZE(test_cases); i++) {

Просмотреть файл

@ -64,17 +64,5 @@ ocaml_demangle_sym(const char *sym)
}
result[j] = '\0';
/* scan backwards to remove an "_" followed by decimal digits */
if (j != 0 && isdigit(result[j - 1])) {
while (--j) {
if (!isdigit(result[j])) {
break;
}
}
if (result[j] == '_') {
result[j] = '\0';
}
}
return result;
}