Lines Matching refs:mangled

531 consume_count_with_underscores (const char **mangled)  in consume_count_with_underscores()  argument
535 if (**mangled == '_') in consume_count_with_underscores()
537 (*mangled)++; in consume_count_with_underscores()
538 if (!ISDIGIT ((unsigned char)**mangled)) in consume_count_with_underscores()
541 idx = consume_count (mangled); in consume_count_with_underscores()
542 if (**mangled != '_') in consume_count_with_underscores()
546 (*mangled)++; in consume_count_with_underscores()
550 if (**mangled < '0' || **mangled > '9') in consume_count_with_underscores()
553 idx = **mangled - '0'; in consume_count_with_underscores()
554 (*mangled)++; in consume_count_with_underscores()
846 cplus_demangle (const char *mangled, int options) in cplus_demangle() argument
852 return xstrdup (mangled); in cplus_demangle()
862 ret = cplus_demangle_v3 (mangled, work->options); in cplus_demangle()
869 ret = java_demangle_v3 (mangled); in cplus_demangle()
875 return ada_demangle(mangled,options); in cplus_demangle()
877 ret = internal_cplus_demangle (work, mangled); in cplus_demangle()
908 ada_demangle (const char *mangled, int option ATTRIBUTE_UNUSED) in ada_demangle() argument
919 if (strncmp (mangled, "_ada_", 5) == 0) in ada_demangle()
921 mangled += 5; in ada_demangle()
925 if (mangled[0] == '_' || mangled[0] == '<') in ada_demangle()
928 p = strstr (mangled, "___"); in ada_demangle()
930 len0 = strlen (mangled); in ada_demangle()
935 len0 = p - mangled; in ada_demangle()
947 if (ISDIGIT ((unsigned char) mangled[len0 - 1])) { in ada_demangle()
948 for (i = len0 - 2; i >= 0 && ISDIGIT ((unsigned char) mangled[i]); i -= 1) in ada_demangle()
950 if (i > 1 && mangled[i] == '_' && mangled[i - 1] == '_') in ada_demangle()
955 else if (mangled[i] == '$') in ada_demangle()
962 for (i = 0, j = 0; i < len0 && ! ISALPHA ((unsigned char)mangled[i]); in ada_demangle()
964 demangled[j] = mangled[i]; in ada_demangle()
968 if (i < len0 - 2 && mangled[i] == '_' && mangled[i + 1] == '_') in ada_demangle()
976 demangled[j] = mangled[i]; in ada_demangle()
993 &demangled_size, strlen (mangled) + 3, in ada_demangle()
996 if (mangled[0] == '<') in ada_demangle()
997 strlcpy (demangled, mangled, demangled_size); in ada_demangle()
999 snprintf (demangled, demangled_size, "<%s>", mangled); in ada_demangle()
1011 internal_cplus_demangle (struct work_stuff *work, const char *mangled) in internal_cplus_demangle() argument
1026 if ((mangled != NULL) && (*mangled != '\0')) in internal_cplus_demangle()
1039 success = gnu_special (work, &mangled, &decl); in internal_cplus_demangle()
1043 success = demangle_prefix (work, &mangled, &decl); in internal_cplus_demangle()
1045 if (success && (*mangled != '\0')) in internal_cplus_demangle()
1047 success = demangle_signature (work, &mangled, &decl); in internal_cplus_demangle()
1256 const char **mangled, string *declp) in demangle_signature() argument
1266 while (success && (**mangled != '\0')) in demangle_signature()
1268 switch (**mangled) in demangle_signature()
1271 oldmangled = *mangled; in demangle_signature()
1272 success = demangle_qualified (work, mangled, declp, 1, 0); in demangle_signature()
1274 remember_type (work, oldmangled, *mangled - oldmangled); in demangle_signature()
1281 oldmangled = *mangled; in demangle_signature()
1282 success = demangle_qualified (work, mangled, declp, 1, 0); in demangle_signature()
1294 oldmangled = *mangled; in demangle_signature()
1296 (*mangled)++; in demangle_signature()
1303 work->type_quals |= code_for_qualifier (**mangled); in demangle_signature()
1307 oldmangled = *mangled; in demangle_signature()
1308 (*mangled)++; in demangle_signature()
1315 while (**mangled && (**mangled != '_')) in demangle_signature()
1316 (*mangled)++; in demangle_signature()
1317 if (!**mangled) in demangle_signature()
1320 (*mangled)++; in demangle_signature()
1330 oldmangled = *mangled; in demangle_signature()
1333 success = demangle_class (work, mangled, declp); in demangle_signature()
1336 remember_type (work, oldmangled, *mangled - oldmangled); in demangle_signature()
1342 if (**mangled != 'F') in demangle_signature()
1351 success = do_type (work, mangled, &s); in demangle_signature()
1372 (*mangled)++; in demangle_signature()
1383 success = demangle_args (work, mangled, declp); in demangle_signature()
1387 if (success && (AUTO_DEMANGLING || EDG_DEMANGLING) && **mangled == '_') in demangle_signature()
1389 ++(*mangled); in demangle_signature()
1391 success = do_type (work, mangled, &tname); in demangle_signature()
1403 oldmangled = *mangled; in demangle_signature()
1405 success = demangle_template (work, mangled, &tname, in demangle_signature()
1409 remember_type (work, oldmangled, *mangled - oldmangled); in demangle_signature()
1437 (*mangled)++; in demangle_signature()
1438 success = do_type (work, mangled, &return_type); in demangle_signature()
1456 (*mangled)++; in demangle_signature()
1457 while (**mangled && ISDIGIT ((unsigned char)**mangled)) in demangle_signature()
1458 (*mangled)++; in demangle_signature()
1468 success = demangle_template (work, mangled, declp, 0, 0, in demangle_signature()
1472 (*mangled)++; in demangle_signature()
1485 success = demangle_args (work, mangled, declp); in demangle_signature()
1508 success = demangle_args (work, mangled, declp); in demangle_signature()
1526 success = demangle_args (work, mangled, declp); in demangle_signature()
1546 demangle_method_args (struct work_stuff *work, const char **mangled,
1553 string_append (declp, *mangled + 1);
1554 *mangled += strlen (*mangled);
1559 success = demangle_args (work, mangled, declp);
1568 const char **mangled, string *tname) in demangle_template_template_parm() argument
1578 if (get_count (mangled, &r)) in demangle_template_template_parm()
1588 if (**mangled == 'Z') in demangle_template_template_parm()
1590 (*mangled)++; in demangle_template_template_parm()
1594 else if (**mangled == 'z') in demangle_template_template_parm()
1596 (*mangled)++; in demangle_template_template_parm()
1598 demangle_template_template_parm (work, mangled, tname); in demangle_template_template_parm()
1607 success = do_type (work, mangled, &temp); in demangle_template_template_parm()
1629 demangle_expression (struct work_stuff *work, const char **mangled, in demangle_expression() argument
1637 (*mangled)++; in demangle_expression()
1638 while (success && **mangled != 'W' && **mangled != '\0') in demangle_expression()
1647 len = strlen (*mangled); in demangle_expression()
1654 && memcmp (optable[i].in, *mangled, l) == 0) in demangle_expression()
1660 (*mangled) += l; in demangle_expression()
1671 success = demangle_template_value_parm (work, mangled, s, tk); in demangle_expression()
1674 if (**mangled != 'W') in demangle_expression()
1679 (*mangled)++; in demangle_expression()
1687 const char **mangled, string *s) in demangle_integral_value() argument
1691 if (**mangled == 'E') in demangle_integral_value()
1692 success = demangle_expression (work, mangled, s, tk_integral); in demangle_integral_value()
1693 else if (**mangled == 'Q' || **mangled == 'K') in demangle_integral_value()
1694 success = demangle_qualified (work, mangled, s, 0, 1); in demangle_integral_value()
1706 if (**mangled == '_') in demangle_integral_value()
1708 if (mangled[0][1] == 'm') in demangle_integral_value()
1716 (*mangled) += 2; in demangle_integral_value()
1729 if (**mangled == 'm') in demangle_integral_value()
1732 (*mangled)++; in demangle_integral_value()
1749 value = consume_count (mangled); in demangle_integral_value()
1751 value = consume_count_with_underscores (mangled); in demangle_integral_value()
1768 && **mangled == '_') in demangle_integral_value()
1769 (*mangled)++; in demangle_integral_value()
1783 const char **mangled, string *s) in demangle_real_value() argument
1785 if (**mangled == 'E') in demangle_real_value()
1786 return demangle_expression (work, mangled, s, tk_real); in demangle_real_value()
1788 if (**mangled == 'm') in demangle_real_value()
1791 (*mangled)++; in demangle_real_value()
1793 while (ISDIGIT ((unsigned char)**mangled)) in demangle_real_value()
1795 string_appendn (s, *mangled, 1); in demangle_real_value()
1796 (*mangled)++; in demangle_real_value()
1798 if (**mangled == '.') /* fraction */ in demangle_real_value()
1801 (*mangled)++; in demangle_real_value()
1802 while (ISDIGIT ((unsigned char)**mangled)) in demangle_real_value()
1804 string_appendn (s, *mangled, 1); in demangle_real_value()
1805 (*mangled)++; in demangle_real_value()
1808 if (**mangled == 'e') /* exponent */ in demangle_real_value()
1811 (*mangled)++; in demangle_real_value()
1812 while (ISDIGIT ((unsigned char)**mangled)) in demangle_real_value()
1814 string_appendn (s, *mangled, 1); in demangle_real_value()
1815 (*mangled)++; in demangle_real_value()
1823 demangle_template_value_parm (struct work_stuff *work, const char **mangled, in demangle_template_value_parm() argument
1828 if (**mangled == 'Y') in demangle_template_value_parm()
1833 (*mangled)++; in demangle_template_value_parm()
1834 idx = consume_count_with_underscores (mangled); in demangle_template_value_parm()
1837 || consume_count_with_underscores (mangled) == -1) in demangle_template_value_parm()
1845 success = demangle_integral_value (work, mangled, s); in demangle_template_value_parm()
1850 if (**mangled == 'm') in demangle_template_value_parm()
1853 (*mangled)++; in demangle_template_value_parm()
1856 val = consume_count(mangled); in demangle_template_value_parm()
1869 int val = consume_count (mangled); in demangle_template_value_parm()
1878 success = demangle_real_value (work, mangled, s); in demangle_template_value_parm()
1881 if (**mangled == 'Q') in demangle_template_value_parm()
1882 success = demangle_qualified (work, mangled, s, in demangle_template_value_parm()
1887 int symbol_len = consume_count (mangled); in demangle_template_value_parm()
1895 strncpy (p, *mangled, symbol_len); in demangle_template_value_parm()
1916 *mangled += symbol_len; in demangle_template_value_parm()
1932 demangle_template (struct work_stuff *work, const char **mangled, in demangle_template() argument
1943 (*mangled)++; in demangle_template()
1947 if (**mangled == 'z') in demangle_template()
1950 (*mangled)++; in demangle_template()
1951 (*mangled)++; in demangle_template()
1953 idx = consume_count_with_underscores (mangled); in demangle_template()
1956 || consume_count_with_underscores (mangled) == -1) in demangle_template()
1974 if ((r = consume_count (mangled)) <= 0 in demangle_template()
1975 || (int) strlen (*mangled) < r) in demangle_template()
1980 && strncmp (*mangled, "JArray1Z", 8) == 0; in demangle_template()
1983 string_appendn (tname, *mangled, r); in demangle_template()
1986 string_appendn (trawname, *mangled, r); in demangle_template()
1987 *mangled += r; in demangle_template()
1993 if (!get_count (mangled, &r)) in demangle_template()
2012 if (**mangled == 'Z') in demangle_template()
2014 (*mangled)++; in demangle_template()
2016 success = do_type (work, mangled, &temp); in demangle_template()
2037 else if (**mangled == 'z') in demangle_template()
2040 (*mangled)++; in demangle_template()
2041 success = demangle_template_template_parm (work, mangled, tname); in demangle_template()
2044 && (r2 = consume_count (mangled)) > 0 in demangle_template()
2045 && (int) strlen (*mangled) >= r2) in demangle_template()
2048 string_appendn (tname, *mangled, r2); in demangle_template()
2054 memcpy (work->tmpl_argvec[i], *mangled, len); in demangle_template()
2057 *mangled += r2; in demangle_template()
2072 success = do_type (work, mangled, &temp); in demangle_template()
2085 success = demangle_template_value_parm (work, mangled, s, in demangle_template()
2143 arm_pt (struct work_stuff *work, const char *mangled, in arm_pt() argument
2148 if ((ARM_DEMANGLING || HP_DEMANGLING) && (*anchor = strstr (mangled, "__pt__"))) in arm_pt()
2155 if (*args + len == mangled + n && **args == '_') in arm_pt()
2163 if ((*anchor = strstr (mangled, "__tm__")) in arm_pt()
2164 || (*anchor = strstr (mangled, "__ps__")) in arm_pt()
2165 || (*anchor = strstr (mangled, "__pt__"))) in arm_pt()
2172 if (*args + len == mangled + n && **args == '_') in arm_pt()
2178 else if ((*anchor = strstr (mangled, "__S"))) in arm_pt()
2185 if (*args + len == mangled + n && **args == '_') in arm_pt()
2197 demangle_arm_hp_template (struct work_stuff *work, const char **mangled, in demangle_arm_hp_template() argument
2202 const char *e = *mangled + n; in demangle_arm_hp_template()
2207 if (HP_DEMANGLING && ((*mangled)[n] == 'X')) in demangle_arm_hp_template()
2214 start_spec_args = strchr (*mangled, '<'); in demangle_arm_hp_template()
2215 if (start_spec_args && (start_spec_args - *mangled < n)) in demangle_arm_hp_template()
2216 string_appendn (declp, *mangled, start_spec_args - *mangled); in demangle_arm_hp_template()
2218 string_appendn (declp, *mangled, n); in demangle_arm_hp_template()
2219 (*mangled) += n + 1; in demangle_arm_hp_template()
2233 switch (**mangled) in demangle_arm_hp_template()
2237 (*mangled)++; in demangle_arm_hp_template()
2238 if (!do_type (work, mangled, &arg)) in demangle_arm_hp_template()
2245 if (!do_hpacc_template_const_value (work, mangled, &arg)) in demangle_arm_hp_template()
2251 if (!do_hpacc_template_literal (work, mangled, &arg)) in demangle_arm_hp_template()
2265 if ((**mangled == '\000') || (**mangled == '_')) in demangle_arm_hp_template()
2273 if (**mangled == '_') in demangle_arm_hp_template()
2274 (*mangled)++; in demangle_arm_hp_template()
2279 else if (arm_pt (work, *mangled, n, &p, &args)) in demangle_arm_hp_template()
2285 string_appendn (declp, *mangled, p - *mangled); in demangle_arm_hp_template()
2353 else if (n>10 && strncmp (*mangled, "_GLOBAL_", 8) == 0 in demangle_arm_hp_template()
2354 && (*mangled)[9] == 'N' in demangle_arm_hp_template()
2355 && (*mangled)[8] == (*mangled)[10] in demangle_arm_hp_template()
2356 && strchr (cplus_markers, (*mangled)[8])) in demangle_arm_hp_template()
2365 string_appendn (declp, *mangled, n); in demangle_arm_hp_template()
2367 *mangled += n; in demangle_arm_hp_template()
2375 demangle_class_name (struct work_stuff *work, const char **mangled, in demangle_class_name() argument
2381 n = consume_count (mangled); in demangle_class_name()
2384 if ((int) strlen (*mangled) >= n) in demangle_class_name()
2386 demangle_arm_hp_template (work, mangled, n, declp); in demangle_class_name()
2429 demangle_class (struct work_stuff *work, const char **mangled, string *declp) in demangle_class() argument
2438 if (demangle_class_name (work, mangled, &class_name)) in demangle_class()
2481 iterate_demangle_function (struct work_stuff *work, const char **mangled, in iterate_demangle_function() argument
2484 const char *mangle_init = *mangled; in iterate_demangle_function()
2497 demangle_function_name (work, mangled, declp, scan); in iterate_demangle_function()
2516 demangle_function_name (work, mangled, declp, scan); in iterate_demangle_function()
2517 success = demangle_signature (work, mangled, declp); in iterate_demangle_function()
2522 *mangled = mangle_init; in iterate_demangle_function()
2581 demangle_prefix (struct work_stuff *work, const char **mangled, in demangle_prefix() argument
2588 if (strlen(*mangled) > 6 in demangle_prefix()
2589 && (strncmp(*mangled, "_imp__", 6) == 0 in demangle_prefix()
2590 || strncmp(*mangled, "__imp_", 6) == 0)) in demangle_prefix()
2595 (*mangled) += 6; in demangle_prefix()
2598 else if (strlen(*mangled) >= 11 && strncmp(*mangled, "_GLOBAL_", 8) == 0) in demangle_prefix()
2600 char *marker = strchr (cplus_markers, (*mangled)[8]); in demangle_prefix()
2601 if (marker != NULL && *marker == (*mangled)[10]) in demangle_prefix()
2603 if ((*mangled)[9] == 'D') in demangle_prefix()
2606 (*mangled) += 11; in demangle_prefix()
2608 if (gnu_special (work, mangled, declp)) in demangle_prefix()
2611 else if ((*mangled)[9] == 'I') in demangle_prefix()
2614 (*mangled) += 11; in demangle_prefix()
2616 if (gnu_special (work, mangled, declp)) in demangle_prefix()
2621 …else if ((ARM_DEMANGLING || HP_DEMANGLING || EDG_DEMANGLING) && strncmp(*mangled, "__std__", 7) ==… in demangle_prefix()
2624 (*mangled) += 7; in demangle_prefix()
2627 …else if ((ARM_DEMANGLING || HP_DEMANGLING || EDG_DEMANGLING) && strncmp(*mangled, "__sti__", 7) ==… in demangle_prefix()
2630 (*mangled) += 7; in demangle_prefix()
2639 scan = *mangled; in demangle_prefix()
2670 else if ((scan == *mangled) in demangle_prefix()
2680 *mangled = scan + 2; in demangle_prefix()
2681 consume_count (mangled); in demangle_prefix()
2682 string_append (declp, *mangled); in demangle_prefix()
2683 *mangled += strlen (*mangled); in demangle_prefix()
2694 *mangled = scan + 2; in demangle_prefix()
2703 demangle_arm_hp_template (work, mangled, strlen (*mangled), declp); in demangle_prefix()
2713 demangle_arm_hp_template (work, mangled, strlen (*mangled), declp); in demangle_prefix()
2715 else if ((scan == *mangled) && !ISDIGIT ((unsigned char)scan[2]) in demangle_prefix()
2722 || (arm_special (mangled, declp) == 0)) in demangle_prefix()
2735 return iterate_demangle_function (work, mangled, declp, scan); in demangle_prefix()
2744 return iterate_demangle_function (work, mangled, declp, scan); in demangle_prefix()
2754 string_append (declp, *mangled); in demangle_prefix()
2755 *mangled += strlen (*mangled); in demangle_prefix()
2790 gnu_special (struct work_stuff *work, const char **mangled, string *declp) in gnu_special() argument
2796 if ((*mangled)[0] == '_' in gnu_special()
2797 && strchr (cplus_markers, (*mangled)[1]) != NULL in gnu_special()
2798 && (*mangled)[2] == '_') in gnu_special()
2801 (*mangled) += 3; in gnu_special()
2804 else if ((*mangled)[0] == '_' in gnu_special()
2805 && (((*mangled)[1] == '_' in gnu_special()
2806 && (*mangled)[2] == 'v' in gnu_special()
2807 && (*mangled)[3] == 't' in gnu_special()
2808 && (*mangled)[4] == '_') in gnu_special()
2809 || ((*mangled)[1] == 'v' in gnu_special()
2810 && (*mangled)[2] == 't' in gnu_special()
2811 && strchr (cplus_markers, (*mangled)[3]) != NULL))) in gnu_special()
2817 if ((*mangled)[2] == 'v') in gnu_special()
2818 (*mangled) += 5; /* New style, with thunks: "__vt_" */ in gnu_special()
2820 (*mangled) += 4; /* Old style, no thunks: "_vt<CPLUS_MARKER>" */ in gnu_special()
2821 while (**mangled != '\0') in gnu_special()
2823 switch (**mangled) in gnu_special()
2827 success = demangle_qualified (work, mangled, declp, 0, 1); in gnu_special()
2830 success = demangle_template (work, mangled, declp, 0, 1, in gnu_special()
2834 if (ISDIGIT((unsigned char)*mangled[0])) in gnu_special()
2836 n = consume_count(mangled); in gnu_special()
2841 if (n > (int) strlen (*mangled)) in gnu_special()
2849 n = strcspn (*mangled, cplus_markers); in gnu_special()
2851 string_appendn (declp, *mangled, n); in gnu_special()
2852 (*mangled) += n; in gnu_special()
2855 p = strpbrk (*mangled, cplus_markers); in gnu_special()
2856 if (success && ((p == NULL) || (p == *mangled))) in gnu_special()
2861 (*mangled)++; in gnu_special()
2873 else if ((*mangled)[0] == '_' in gnu_special()
2874 && (strchr("0123456789Qt", (*mangled)[1]) != NULL) in gnu_special()
2875 && (p = strpbrk (*mangled, cplus_markers)) != NULL) in gnu_special()
2878 (*mangled)++; in gnu_special()
2879 switch (**mangled) in gnu_special()
2883 success = demangle_qualified (work, mangled, declp, 0, 1); in gnu_special()
2886 success = demangle_template (work, mangled, declp, 0, 1, 1); in gnu_special()
2889 n = consume_count (mangled); in gnu_special()
2890 if (n < 0 || n > (long) strlen (*mangled)) in gnu_special()
2896 if (n > 10 && strncmp (*mangled, "_GLOBAL_", 8) == 0 in gnu_special()
2897 && (*mangled)[9] == 'N' in gnu_special()
2898 && (*mangled)[8] == (*mangled)[10] in gnu_special()
2899 && strchr (cplus_markers, (*mangled)[8])) in gnu_special()
2906 (*mangled) += n; in gnu_special()
2910 p = strpbrk (*mangled, cplus_markers); in gnu_special()
2914 string_appendn (declp, *mangled, n); in gnu_special()
2915 (*mangled) += n; in gnu_special()
2917 if (success && (p == *mangled)) in gnu_special()
2921 (*mangled)++; in gnu_special()
2923 n = strlen (*mangled); in gnu_special()
2924 string_appendn (declp, *mangled, n); in gnu_special()
2925 (*mangled) += n; in gnu_special()
2932 else if (strncmp (*mangled, "__thunk_", 8) == 0) in gnu_special()
2936 (*mangled) += 8; in gnu_special()
2937 delta = consume_count (mangled); in gnu_special()
2942 char *method = internal_cplus_demangle (work, ++*mangled); in gnu_special()
2951 n = strlen (*mangled); in gnu_special()
2952 (*mangled) += n; in gnu_special()
2960 else if (strncmp (*mangled, "__t", 3) == 0 in gnu_special()
2961 && ((*mangled)[3] == 'i' || (*mangled)[3] == 'f')) in gnu_special()
2963 p = (*mangled)[3] == 'i' ? " type_info node" : " type_info function"; in gnu_special()
2964 (*mangled) += 4; in gnu_special()
2965 switch (**mangled) in gnu_special()
2969 success = demangle_qualified (work, mangled, declp, 0, 1); in gnu_special()
2972 success = demangle_template (work, mangled, declp, 0, 1, 1); in gnu_special()
2975 success = do_type (work, mangled, declp); in gnu_special()
2978 if (success && **mangled != '\0') in gnu_special()
2991 recursively_demangle(struct work_stuff *work, const char **mangled, in recursively_demangle() argument
2998 memcpy (recurse, *mangled, namelength); in recursively_demangle()
3010 string_appendn (result, *mangled, namelength); in recursively_demangle()
3013 *mangled += namelength; in recursively_demangle()
3040 arm_special (const char **mangled, string *declp) in arm_special() argument
3046 if (strncmp (*mangled, ARM_VTABLE_STRING, ARM_VTABLE_STRLEN) == 0) in arm_special()
3052 scan = *mangled + ARM_VTABLE_STRLEN; in arm_special()
3066 (*mangled) += ARM_VTABLE_STRLEN; in arm_special()
3067 while (**mangled != '\0') in arm_special()
3069 n = consume_count (mangled); in arm_special()
3071 || n > (long) strlen (*mangled)) in arm_special()
3073 string_prependn (declp, *mangled, n); in arm_special()
3074 (*mangled) += n; in arm_special()
3075 if ((*mangled)[0] == '_' && (*mangled)[1] == '_') in arm_special()
3078 (*mangled) += 2; in arm_special()
3123 demangle_qualified (struct work_stuff *work, const char **mangled, in demangle_qualified() argument
3141 if ((*mangled)[0] == 'K') in demangle_qualified()
3145 (*mangled)++; in demangle_qualified()
3146 idx = consume_count_with_underscores (mangled); in demangle_qualified()
3153 switch ((*mangled)[1]) in demangle_qualified()
3159 (*mangled)++; in demangle_qualified()
3160 qualifiers = consume_count_with_underscores (mangled); in demangle_qualified()
3175 num[0] = (*mangled)[1]; in demangle_qualified()
3182 if ((*mangled)[2] == '_') in demangle_qualified()
3184 (*mangled)++; in demangle_qualified()
3186 (*mangled) += 2; in demangle_qualified()
3205 if (*mangled[0] == '_') in demangle_qualified()
3206 (*mangled)++; in demangle_qualified()
3208 if (*mangled[0] == 't') in demangle_qualified()
3216 success = demangle_template(work, mangled, &temp, in demangle_qualified()
3221 else if (*mangled[0] == 'K') in demangle_qualified()
3224 (*mangled)++; in demangle_qualified()
3225 idx = consume_count_with_underscores (mangled); in demangle_qualified()
3242 namelength = consume_count (mangled); in demangle_qualified()
3248 recursively_demangle(work, mangled, &temp, namelength); in demangle_qualified()
3253 success = do_type (work, mangled, &last_name); in demangle_qualified()
3382 do_type (struct work_stuff *work, const char **mangled, string *result) in do_type() argument
3400 switch (**mangled) in do_type()
3406 (*mangled)++; in do_type()
3415 (*mangled)++; in do_type()
3424 ++(*mangled); in do_type()
3432 if (**mangled != '_') in do_type()
3433 success = demangle_template_value_parm (work, mangled, &decl, in do_type()
3435 if (**mangled == '_') in do_type()
3436 ++(*mangled); in do_type()
3443 (*mangled)++; in do_type()
3444 if (!get_count (mangled, &n) || n >= work -> ntypes) in do_type()
3451 mangled = &remembered_type; in do_type()
3457 (*mangled)++; in do_type()
3467 if (!demangle_nested_args (work, mangled, &decl) in do_type()
3468 || (**mangled != '_' && **mangled != '\0')) in do_type()
3473 if (success && (**mangled == '_')) in do_type()
3474 (*mangled)++; in do_type()
3482 member = **mangled == 'M'; in do_type()
3483 (*mangled)++; in do_type()
3489 if (**mangled != 'Q') in do_type()
3492 if (ISDIGIT ((unsigned char)**mangled)) in do_type()
3494 n = consume_count (mangled); in do_type()
3496 || (int) strlen (*mangled) < n) in do_type()
3501 string_prependn (&decl, *mangled, n); in do_type()
3502 *mangled += n; in do_type()
3504 else if (**mangled == 'X' || **mangled == 'Y') in do_type()
3507 do_type (work, mangled, &temp); in do_type()
3511 else if (**mangled == 't') in do_type()
3515 success = demangle_template (work, mangled, &temp, in do_type()
3525 else if (**mangled == 'Q') in do_type()
3527 success = demangle_qualified (work, mangled, &decl, in do_type()
3542 switch (**mangled) in do_type()
3547 type_quals |= code_for_qualifier (**mangled); in do_type()
3548 (*mangled)++; in do_type()
3555 if (*(*mangled)++ != 'F') in do_type()
3561 if ((member && !demangle_nested_args (work, mangled, &decl)) in do_type()
3562 || **mangled != '_') in do_type()
3567 (*mangled)++; in do_type()
3580 (*mangled)++; in do_type()
3591 string_prepend (&decl, demangle_qualifier (**mangled)); in do_type()
3593 (*mangled)++; in do_type()
3606 if (success) switch (**mangled) in do_type()
3612 success = demangle_qualified (work, mangled, result, 0, 1); in do_type()
3618 (*mangled)++; in do_type()
3619 if (!get_count (mangled, &n) || n >= work -> numb) in do_type()
3631 (*mangled)++; in do_type()
3632 idx = consume_count_with_underscores (mangled); in do_type()
3636 || consume_count_with_underscores (mangled) == -1) in do_type()
3652 success = demangle_fund_type (work, mangled, result); in do_type()
3692 const char **mangled, string *result) in demangle_fund_type() argument
3704 switch (**mangled) in demangle_fund_type()
3713 string_prepend (result, demangle_qualifier (**mangled)); in demangle_fund_type()
3715 (*mangled)++; in demangle_fund_type()
3718 (*mangled)++; in demangle_fund_type()
3723 (*mangled)++; in demangle_fund_type()
3728 (*mangled)++; in demangle_fund_type()
3740 switch (**mangled) in demangle_fund_type()
3746 (*mangled)++; in demangle_fund_type()
3751 (*mangled)++; in demangle_fund_type()
3756 (*mangled)++; in demangle_fund_type()
3761 (*mangled)++; in demangle_fund_type()
3766 (*mangled)++; in demangle_fund_type()
3771 (*mangled)++; in demangle_fund_type()
3777 (*mangled)++; in demangle_fund_type()
3783 (*mangled)++; in demangle_fund_type()
3789 (*mangled)++; in demangle_fund_type()
3795 (*mangled)++; in demangle_fund_type()
3801 (*mangled)++; in demangle_fund_type()
3807 (*mangled)++; in demangle_fund_type()
3808 if (!ISDIGIT ((unsigned char)**mangled)) in demangle_fund_type()
3814 (*mangled)++; in demangle_fund_type()
3815 if (**mangled == '_') in demangle_fund_type()
3818 (*mangled)++; in demangle_fund_type()
3820 i < (long) sizeof (buf) - 1 && **mangled && **mangled != '_'; in demangle_fund_type()
3821 (*mangled)++, i++) in demangle_fund_type()
3822 buf[i] = **mangled; in demangle_fund_type()
3823 if (**mangled != '_') in demangle_fund_type()
3829 (*mangled)++; in demangle_fund_type()
3833 strncpy (buf, *mangled, 2); in demangle_fund_type()
3835 *mangled += min (strlen (*mangled), 2); in demangle_fund_type()
3859 if (demangle_class_name (work, mangled, &btype)) { in demangle_fund_type()
3873 success = demangle_template (work, mangled, &btype, 0, 1, 1); in demangle_fund_type()
3892 const char **mangled, string *result) in do_hpacc_template_const_value() argument
3896 if (**mangled != 'U' && **mangled != 'S') in do_hpacc_template_const_value()
3899 unsigned_const = (**mangled == 'U'); in do_hpacc_template_const_value()
3901 (*mangled)++; in do_hpacc_template_const_value()
3903 switch (**mangled) in do_hpacc_template_const_value()
3909 (*mangled)++; in do_hpacc_template_const_value()
3914 (*mangled)++; in do_hpacc_template_const_value()
3921 if (!(ISDIGIT ((unsigned char)**mangled))) in do_hpacc_template_const_value()
3926 while (ISDIGIT ((unsigned char)**mangled)) in do_hpacc_template_const_value()
3928 char_str[0] = **mangled; in do_hpacc_template_const_value()
3930 (*mangled)++; in do_hpacc_template_const_value()
3946 do_hpacc_template_literal (struct work_stuff *work, const char **mangled, in do_hpacc_template_literal() argument
3953 if (**mangled != 'A') in do_hpacc_template_literal()
3956 (*mangled)++; in do_hpacc_template_literal()
3958 literal_len = consume_count (mangled); in do_hpacc_template_literal()
3969 memcpy (recurse, *mangled, literal_len); in do_hpacc_template_literal()
3981 string_appendn (result, *mangled, literal_len); in do_hpacc_template_literal()
3983 (*mangled) += literal_len; in do_hpacc_template_literal()
4019 do_arg (struct work_stuff *work, const char **mangled, string *result) in do_arg() argument
4023 const char *start = *mangled; in do_arg()
4039 if (**mangled == 'n') in do_arg()
4042 (*mangled)++; in do_arg()
4043 work->nrepeats = consume_count(mangled); in do_arg()
4051 if (**mangled != '_') in do_arg()
4056 (*mangled)++; in do_arg()
4060 return do_arg (work, mangled, result); in do_arg()
4072 if (!do_type (work, mangled, work->previous_argument)) in do_arg()
4077 remember_type (work, start, *mangled - start); in do_arg()
4265 demangle_args (struct work_stuff *work, const char **mangled, in demangle_args() argument
4278 if (**mangled == '\0') in demangle_args()
4284 while ((**mangled != '_' && **mangled != '\0' && **mangled != 'e') in demangle_args()
4287 if ((**mangled == 'N') || (**mangled == 'T')) in demangle_args()
4289 temptype = *(*mangled)++; in demangle_args()
4293 if (!get_count (mangled, &r)) in demangle_args()
4310 if ((t = consume_count(mangled)) <= 0) in demangle_args()
4317 if (!get_count (mangled, &t)) in demangle_args()
4355 if (!do_arg (work, mangled, &arg)) in demangle_args()
4364 if (**mangled == 'e') in demangle_args()
4366 (*mangled)++; in demangle_args()
4388 demangle_nested_args (struct work_stuff *work, const char **mangled, in demangle_nested_args() argument
4409 result = demangle_args (work, mangled, declp); in demangle_nested_args()
4425 demangle_function_name (struct work_stuff *work, const char **mangled, in demangle_function_name() argument
4432 string_appendn (declp, (*mangled), scan - (*mangled)); in demangle_function_name()
4440 (*mangled) = scan + 2; in demangle_function_name()
4446 if (HP_DEMANGLING && (**mangled == 'X')) in demangle_function_name()
4448 demangle_arm_hp_template (work, mangled, 0, declp); in demangle_function_name()