1e37eab997efd97449c49a30bd32870255a13fd51Jing Yu#include <stdio.h>
2e37eab997efd97449c49a30bd32870255a13fd51Jing Yu
3e37eab997efd97449c49a30bd32870255a13fd51Jing Yuconst char* names[4] = {"_ZN6SkPath4IterC1ERKS_b",
4e37eab997efd97449c49a30bd32870255a13fd51Jing Yu    "_ZN6SkPath4Iter4nextEP7SkPoint",
5e37eab997efd97449c49a30bd32870255a13fd51Jing Yu    "_ZN6SkScan8HairLineERK7SkPointS2_PK8SkRegionP9SkBlitter",
6e37eab997efd97449c49a30bd32870255a13fd51Jing Yu    NULL};
7e37eab997efd97449c49a30bd32870255a13fd51Jing Yu
8e37eab997efd97449c49a30bd32870255a13fd51Jing Yuextern char *__cxa_demangle (const char *mangled, char *buf, size_t *len,
9e37eab997efd97449c49a30bd32870255a13fd51Jing Yu                             int *status);
10e37eab997efd97449c49a30bd32870255a13fd51Jing Yu
11e37eab997efd97449c49a30bd32870255a13fd51Jing Yuchar* demangle_symbol_name(const char*name) {
12e37eab997efd97449c49a30bd32870255a13fd51Jing Yu    return name ? __cxa_demangle(name, 0, 0, 0) : "";
13e37eab997efd97449c49a30bd32870255a13fd51Jing Yu}
14e37eab997efd97449c49a30bd32870255a13fd51Jing Yu
15e37eab997efd97449c49a30bd32870255a13fd51Jing Yuint main() {
16e37eab997efd97449c49a30bd32870255a13fd51Jing Yu  int i;
17e37eab997efd97449c49a30bd32870255a13fd51Jing Yu  for (i=0; i<4; ++i) {
18e37eab997efd97449c49a30bd32870255a13fd51Jing Yu    printf ("%s -> %s\n", names[i], demangle_symbol_name(names[i]));
19e37eab997efd97449c49a30bd32870255a13fd51Jing Yu  }
20e37eab997efd97449c49a30bd32870255a13fd51Jing Yu  return 0;
21e37eab997efd97449c49a30bd32870255a13fd51Jing Yu}
22