Lines Matching refs:mangled

537 consume_count_with_underscores (const char **mangled)  in consume_count_with_underscores()  argument
541 if (**mangled == '_') in consume_count_with_underscores()
543 (*mangled)++; in consume_count_with_underscores()
544 if (!ISDIGIT ((unsigned char)**mangled)) in consume_count_with_underscores()
547 idx = consume_count (mangled); in consume_count_with_underscores()
548 if (**mangled != '_') in consume_count_with_underscores()
552 (*mangled)++; in consume_count_with_underscores()
556 if (**mangled < '0' || **mangled > '9') in consume_count_with_underscores()
559 idx = **mangled - '0'; in consume_count_with_underscores()
560 (*mangled)++; in consume_count_with_underscores()
853 cplus_demangle (const char *mangled, int options) in cplus_demangle() argument
859 return xstrdup (mangled); in cplus_demangle()
869 ret = cplus_demangle_v3 (mangled, work->options); in cplus_demangle()
876 ret = java_demangle_v3 (mangled); in cplus_demangle()
882 return ada_demangle(mangled,options); in cplus_demangle()
884 ret = internal_cplus_demangle (work, mangled); in cplus_demangle()
915 ada_demangle (const char *mangled, int option ATTRIBUTE_UNUSED) in ada_demangle() argument
926 if (strncmp (mangled, "_ada_", 5) == 0) in ada_demangle()
928 mangled += 5; in ada_demangle()
932 if (mangled[0] == '_' || mangled[0] == '<') in ada_demangle()
935 p = strstr (mangled, "___"); in ada_demangle()
937 len0 = strlen (mangled); in ada_demangle()
942 len0 = p - mangled; in ada_demangle()
954 if (ISDIGIT ((unsigned char) mangled[len0 - 1])) { in ada_demangle()
955 for (i = len0 - 2; i >= 0 && ISDIGIT ((unsigned char) mangled[i]); i -= 1) in ada_demangle()
957 if (i > 1 && mangled[i] == '_' && mangled[i - 1] == '_') in ada_demangle()
962 else if (mangled[i] == '$') in ada_demangle()
969 for (i = 0, j = 0; i < len0 && ! ISALPHA ((unsigned char)mangled[i]); in ada_demangle()
971 demangled[j] = mangled[i]; in ada_demangle()
975 if (i < len0 - 2 && mangled[i] == '_' && mangled[i + 1] == '_') in ada_demangle()
983 demangled[j] = mangled[i]; in ada_demangle()
1000 &demangled_size, strlen (mangled) + 3, in ada_demangle()
1003 if (mangled[0] == '<') in ada_demangle()
1004 strlcpy (demangled, mangled, demangled_size); in ada_demangle()
1006 snprintf (demangled, demangled_size, "<%s>", mangled); in ada_demangle()
1018 internal_cplus_demangle (struct work_stuff *work, const char *mangled) in internal_cplus_demangle() argument
1033 if ((mangled != NULL) && (*mangled != '\0')) in internal_cplus_demangle()
1046 success = gnu_special (work, &mangled, &decl); in internal_cplus_demangle()
1050 success = demangle_prefix (work, &mangled, &decl); in internal_cplus_demangle()
1052 if (success && (*mangled != '\0')) in internal_cplus_demangle()
1054 success = demangle_signature (work, &mangled, &decl); in internal_cplus_demangle()
1263 const char **mangled, string *declp) in demangle_signature() argument
1273 while (success && (**mangled != '\0')) in demangle_signature()
1275 switch (**mangled) in demangle_signature()
1278 oldmangled = *mangled; in demangle_signature()
1279 success = demangle_qualified (work, mangled, declp, 1, 0); in demangle_signature()
1281 remember_type (work, oldmangled, *mangled - oldmangled); in demangle_signature()
1288 oldmangled = *mangled; in demangle_signature()
1289 success = demangle_qualified (work, mangled, declp, 1, 0); in demangle_signature()
1301 oldmangled = *mangled; in demangle_signature()
1303 (*mangled)++; in demangle_signature()
1310 work->type_quals |= code_for_qualifier (**mangled); in demangle_signature()
1314 oldmangled = *mangled; in demangle_signature()
1315 (*mangled)++; in demangle_signature()
1322 while (**mangled && (**mangled != '_')) in demangle_signature()
1323 (*mangled)++; in demangle_signature()
1324 if (!**mangled) in demangle_signature()
1327 (*mangled)++; in demangle_signature()
1337 oldmangled = *mangled; in demangle_signature()
1340 success = demangle_class (work, mangled, declp); in demangle_signature()
1343 remember_type (work, oldmangled, *mangled - oldmangled); in demangle_signature()
1349 if (**mangled != 'F') in demangle_signature()
1358 success = do_type (work, mangled, &s); in demangle_signature()
1379 (*mangled)++; in demangle_signature()
1390 success = demangle_args (work, mangled, declp); in demangle_signature()
1394 if (success && (AUTO_DEMANGLING || EDG_DEMANGLING) && **mangled == '_') in demangle_signature()
1396 ++(*mangled); in demangle_signature()
1398 success = do_type (work, mangled, &tname); in demangle_signature()
1410 oldmangled = *mangled; in demangle_signature()
1412 success = demangle_template (work, mangled, &tname, in demangle_signature()
1416 remember_type (work, oldmangled, *mangled - oldmangled); in demangle_signature()
1444 (*mangled)++; in demangle_signature()
1445 success = do_type (work, mangled, &return_type); in demangle_signature()
1463 (*mangled)++; in demangle_signature()
1464 while (**mangled && ISDIGIT ((unsigned char)**mangled)) in demangle_signature()
1465 (*mangled)++; in demangle_signature()
1475 success = demangle_template (work, mangled, declp, 0, 0, in demangle_signature()
1479 (*mangled)++; in demangle_signature()
1492 success = demangle_args (work, mangled, declp); in demangle_signature()
1515 success = demangle_args (work, mangled, declp); in demangle_signature()
1533 success = demangle_args (work, mangled, declp); in demangle_signature()
1553 demangle_method_args (struct work_stuff *work, const char **mangled,
1560 string_append (declp, *mangled + 1);
1561 *mangled += strlen (*mangled);
1566 success = demangle_args (work, mangled, declp);
1575 const char **mangled, string *tname) in demangle_template_template_parm() argument
1585 if (get_count (mangled, &r)) in demangle_template_template_parm()
1595 if (**mangled == 'Z') in demangle_template_template_parm()
1597 (*mangled)++; in demangle_template_template_parm()
1601 else if (**mangled == 'z') in demangle_template_template_parm()
1603 (*mangled)++; in demangle_template_template_parm()
1605 demangle_template_template_parm (work, mangled, tname); in demangle_template_template_parm()
1614 success = do_type (work, mangled, &temp); in demangle_template_template_parm()
1636 demangle_expression (struct work_stuff *work, const char **mangled, in demangle_expression() argument
1644 (*mangled)++; in demangle_expression()
1645 while (success && **mangled != 'W' && **mangled != '\0') in demangle_expression()
1654 len = strlen (*mangled); in demangle_expression()
1661 && memcmp (optable[i].in, *mangled, l) == 0) in demangle_expression()
1667 (*mangled) += l; in demangle_expression()
1678 success = demangle_template_value_parm (work, mangled, s, tk); in demangle_expression()
1681 if (**mangled != 'W') in demangle_expression()
1686 (*mangled)++; in demangle_expression()
1694 const char **mangled, string *s) in demangle_integral_value() argument
1698 if (**mangled == 'E') in demangle_integral_value()
1699 success = demangle_expression (work, mangled, s, tk_integral); in demangle_integral_value()
1700 else if (**mangled == 'Q' || **mangled == 'K') in demangle_integral_value()
1701 success = demangle_qualified (work, mangled, s, 0, 1); in demangle_integral_value()
1713 if (**mangled == '_') in demangle_integral_value()
1715 if (mangled[0][1] == 'm') in demangle_integral_value()
1723 (*mangled) += 2; in demangle_integral_value()
1736 if (**mangled == 'm') in demangle_integral_value()
1739 (*mangled)++; in demangle_integral_value()
1756 value = consume_count (mangled); in demangle_integral_value()
1758 value = consume_count_with_underscores (mangled); in demangle_integral_value()
1775 && **mangled == '_') in demangle_integral_value()
1776 (*mangled)++; in demangle_integral_value()
1790 const char **mangled, string *s) in demangle_real_value() argument
1792 if (**mangled == 'E') in demangle_real_value()
1793 return demangle_expression (work, mangled, s, tk_real); in demangle_real_value()
1795 if (**mangled == 'm') in demangle_real_value()
1798 (*mangled)++; in demangle_real_value()
1800 while (ISDIGIT ((unsigned char)**mangled)) in demangle_real_value()
1802 string_appendn (s, *mangled, 1); in demangle_real_value()
1803 (*mangled)++; in demangle_real_value()
1805 if (**mangled == '.') /* fraction */ in demangle_real_value()
1808 (*mangled)++; in demangle_real_value()
1809 while (ISDIGIT ((unsigned char)**mangled)) in demangle_real_value()
1811 string_appendn (s, *mangled, 1); in demangle_real_value()
1812 (*mangled)++; in demangle_real_value()
1815 if (**mangled == 'e') /* exponent */ in demangle_real_value()
1818 (*mangled)++; in demangle_real_value()
1819 while (ISDIGIT ((unsigned char)**mangled)) in demangle_real_value()
1821 string_appendn (s, *mangled, 1); in demangle_real_value()
1822 (*mangled)++; in demangle_real_value()
1830 demangle_template_value_parm (struct work_stuff *work, const char **mangled, in demangle_template_value_parm() argument
1835 if (**mangled == 'Y') in demangle_template_value_parm()
1840 (*mangled)++; in demangle_template_value_parm()
1841 idx = consume_count_with_underscores (mangled); in demangle_template_value_parm()
1844 || consume_count_with_underscores (mangled) == -1) in demangle_template_value_parm()
1852 success = demangle_integral_value (work, mangled, s); in demangle_template_value_parm()
1857 if (**mangled == 'm') in demangle_template_value_parm()
1860 (*mangled)++; in demangle_template_value_parm()
1863 val = consume_count(mangled); in demangle_template_value_parm()
1876 int val = consume_count (mangled); in demangle_template_value_parm()
1885 success = demangle_real_value (work, mangled, s); in demangle_template_value_parm()
1888 if (**mangled == 'Q') in demangle_template_value_parm()
1889 success = demangle_qualified (work, mangled, s, in demangle_template_value_parm()
1894 int symbol_len = consume_count (mangled); in demangle_template_value_parm()
1902 strncpy (p, *mangled, symbol_len); in demangle_template_value_parm()
1923 *mangled += symbol_len; in demangle_template_value_parm()
1939 demangle_template (struct work_stuff *work, const char **mangled, in demangle_template() argument
1950 (*mangled)++; in demangle_template()
1954 if (**mangled == 'z') in demangle_template()
1957 (*mangled)++; in demangle_template()
1958 (*mangled)++; in demangle_template()
1960 idx = consume_count_with_underscores (mangled); in demangle_template()
1963 || consume_count_with_underscores (mangled) == -1) in demangle_template()
1981 if ((r = consume_count (mangled)) <= 0 in demangle_template()
1982 || (int) strlen (*mangled) < r) in demangle_template()
1987 && strncmp (*mangled, "JArray1Z", 8) == 0; in demangle_template()
1990 string_appendn (tname, *mangled, r); in demangle_template()
1993 string_appendn (trawname, *mangled, r); in demangle_template()
1994 *mangled += r; in demangle_template()
2000 if (!get_count (mangled, &r)) in demangle_template()
2019 if (**mangled == 'Z') in demangle_template()
2021 (*mangled)++; in demangle_template()
2023 success = do_type (work, mangled, &temp); in demangle_template()
2044 else if (**mangled == 'z') in demangle_template()
2047 (*mangled)++; in demangle_template()
2048 success = demangle_template_template_parm (work, mangled, tname); in demangle_template()
2051 && (r2 = consume_count (mangled)) > 0 in demangle_template()
2052 && (int) strlen (*mangled) >= r2) in demangle_template()
2055 string_appendn (tname, *mangled, r2); in demangle_template()
2061 memcpy (work->tmpl_argvec[i], *mangled, len); in demangle_template()
2064 *mangled += r2; in demangle_template()
2079 success = do_type (work, mangled, &temp); in demangle_template()
2092 success = demangle_template_value_parm (work, mangled, s, in demangle_template()
2150 arm_pt (struct work_stuff *work, const char *mangled, in arm_pt() argument
2155 if ((ARM_DEMANGLING || HP_DEMANGLING) && (*anchor = strstr (mangled, "__pt__"))) in arm_pt()
2162 if (*args + len == mangled + n && **args == '_') in arm_pt()
2170 if ((*anchor = strstr (mangled, "__tm__")) in arm_pt()
2171 || (*anchor = strstr (mangled, "__ps__")) in arm_pt()
2172 || (*anchor = strstr (mangled, "__pt__"))) in arm_pt()
2179 if (*args + len == mangled + n && **args == '_') in arm_pt()
2185 else if ((*anchor = strstr (mangled, "__S"))) in arm_pt()
2192 if (*args + len == mangled + n && **args == '_') in arm_pt()
2204 demangle_arm_hp_template (struct work_stuff *work, const char **mangled, in demangle_arm_hp_template() argument
2209 const char *e = *mangled + n; in demangle_arm_hp_template()
2214 if (HP_DEMANGLING && ((*mangled)[n] == 'X')) in demangle_arm_hp_template()
2221 start_spec_args = strchr (*mangled, '<'); in demangle_arm_hp_template()
2222 if (start_spec_args && (start_spec_args - *mangled < n)) in demangle_arm_hp_template()
2223 string_appendn (declp, *mangled, start_spec_args - *mangled); in demangle_arm_hp_template()
2225 string_appendn (declp, *mangled, n); in demangle_arm_hp_template()
2226 (*mangled) += n + 1; in demangle_arm_hp_template()
2240 switch (**mangled) in demangle_arm_hp_template()
2244 (*mangled)++; in demangle_arm_hp_template()
2245 if (!do_type (work, mangled, &arg)) in demangle_arm_hp_template()
2252 if (!do_hpacc_template_const_value (work, mangled, &arg)) in demangle_arm_hp_template()
2258 if (!do_hpacc_template_literal (work, mangled, &arg)) in demangle_arm_hp_template()
2272 if ((**mangled == '\000') || (**mangled == '_')) in demangle_arm_hp_template()
2280 if (**mangled == '_') in demangle_arm_hp_template()
2281 (*mangled)++; in demangle_arm_hp_template()
2286 else if (arm_pt (work, *mangled, n, &p, &args)) in demangle_arm_hp_template()
2292 string_appendn (declp, *mangled, p - *mangled); in demangle_arm_hp_template()
2360 else if (n>10 && strncmp (*mangled, "_GLOBAL_", 8) == 0 in demangle_arm_hp_template()
2361 && (*mangled)[9] == 'N' in demangle_arm_hp_template()
2362 && (*mangled)[8] == (*mangled)[10] in demangle_arm_hp_template()
2363 && strchr (cplus_markers, (*mangled)[8])) in demangle_arm_hp_template()
2372 string_appendn (declp, *mangled, n); in demangle_arm_hp_template()
2374 *mangled += n; in demangle_arm_hp_template()
2382 demangle_class_name (struct work_stuff *work, const char **mangled, in demangle_class_name() argument
2388 n = consume_count (mangled); in demangle_class_name()
2391 if ((int) strlen (*mangled) >= n) in demangle_class_name()
2393 demangle_arm_hp_template (work, mangled, n, declp); in demangle_class_name()
2436 demangle_class (struct work_stuff *work, const char **mangled, string *declp) in demangle_class() argument
2445 if (demangle_class_name (work, mangled, &class_name)) in demangle_class()
2488 iterate_demangle_function (struct work_stuff *work, const char **mangled, in iterate_demangle_function() argument
2491 const char *mangle_init = *mangled; in iterate_demangle_function()
2504 demangle_function_name (work, mangled, declp, scan); in iterate_demangle_function()
2523 demangle_function_name (work, mangled, declp, scan); in iterate_demangle_function()
2524 success = demangle_signature (work, mangled, declp); in iterate_demangle_function()
2529 *mangled = mangle_init; in iterate_demangle_function()
2588 demangle_prefix (struct work_stuff *work, const char **mangled, in demangle_prefix() argument
2595 if (strlen(*mangled) > 6 in demangle_prefix()
2596 && (strncmp(*mangled, "_imp__", 6) == 0 in demangle_prefix()
2597 || strncmp(*mangled, "__imp_", 6) == 0)) in demangle_prefix()
2602 (*mangled) += 6; in demangle_prefix()
2605 else if (strlen(*mangled) >= 11 && strncmp(*mangled, "_GLOBAL_", 8) == 0) in demangle_prefix()
2607 char *marker = strchr (cplus_markers, (*mangled)[8]); in demangle_prefix()
2608 if (marker != NULL && *marker == (*mangled)[10]) in demangle_prefix()
2610 if ((*mangled)[9] == 'D') in demangle_prefix()
2613 (*mangled) += 11; in demangle_prefix()
2615 if (gnu_special (work, mangled, declp)) in demangle_prefix()
2618 else if ((*mangled)[9] == 'I') in demangle_prefix()
2621 (*mangled) += 11; in demangle_prefix()
2623 if (gnu_special (work, mangled, declp)) in demangle_prefix()
2628 …else if ((ARM_DEMANGLING || HP_DEMANGLING || EDG_DEMANGLING) && strncmp(*mangled, "__std__", 7) ==… in demangle_prefix()
2631 (*mangled) += 7; in demangle_prefix()
2634 …else if ((ARM_DEMANGLING || HP_DEMANGLING || EDG_DEMANGLING) && strncmp(*mangled, "__sti__", 7) ==… in demangle_prefix()
2637 (*mangled) += 7; in demangle_prefix()
2646 scan = *mangled; in demangle_prefix()
2677 else if ((scan == *mangled) in demangle_prefix()
2687 *mangled = scan + 2; in demangle_prefix()
2688 consume_count (mangled); in demangle_prefix()
2689 string_append (declp, *mangled); in demangle_prefix()
2690 *mangled += strlen (*mangled); in demangle_prefix()
2701 *mangled = scan + 2; in demangle_prefix()
2710 demangle_arm_hp_template (work, mangled, strlen (*mangled), declp); in demangle_prefix()
2720 demangle_arm_hp_template (work, mangled, strlen (*mangled), declp); in demangle_prefix()
2722 else if ((scan == *mangled) && !ISDIGIT ((unsigned char)scan[2]) in demangle_prefix()
2729 || (arm_special (mangled, declp) == 0)) in demangle_prefix()
2742 return iterate_demangle_function (work, mangled, declp, scan); in demangle_prefix()
2751 return iterate_demangle_function (work, mangled, declp, scan); in demangle_prefix()
2761 string_append (declp, *mangled); in demangle_prefix()
2762 *mangled += strlen (*mangled); in demangle_prefix()
2797 gnu_special (struct work_stuff *work, const char **mangled, string *declp) in gnu_special() argument
2803 if ((*mangled)[0] == '_' in gnu_special()
2804 && strchr (cplus_markers, (*mangled)[1]) != NULL in gnu_special()
2805 && (*mangled)[2] == '_') in gnu_special()
2808 (*mangled) += 3; in gnu_special()
2811 else if ((*mangled)[0] == '_' in gnu_special()
2812 && (((*mangled)[1] == '_' in gnu_special()
2813 && (*mangled)[2] == 'v' in gnu_special()
2814 && (*mangled)[3] == 't' in gnu_special()
2815 && (*mangled)[4] == '_') in gnu_special()
2816 || ((*mangled)[1] == 'v' in gnu_special()
2817 && (*mangled)[2] == 't' in gnu_special()
2818 && strchr (cplus_markers, (*mangled)[3]) != NULL))) in gnu_special()
2824 if ((*mangled)[2] == 'v') in gnu_special()
2825 (*mangled) += 5; /* New style, with thunks: "__vt_" */ in gnu_special()
2827 (*mangled) += 4; /* Old style, no thunks: "_vt<CPLUS_MARKER>" */ in gnu_special()
2828 while (**mangled != '\0') in gnu_special()
2830 switch (**mangled) in gnu_special()
2834 success = demangle_qualified (work, mangled, declp, 0, 1); in gnu_special()
2837 success = demangle_template (work, mangled, declp, 0, 1, in gnu_special()
2841 if (ISDIGIT((unsigned char)*mangled[0])) in gnu_special()
2843 n = consume_count(mangled); in gnu_special()
2848 if (n > (int) strlen (*mangled)) in gnu_special()
2856 n = strcspn (*mangled, cplus_markers); in gnu_special()
2858 string_appendn (declp, *mangled, n); in gnu_special()
2859 (*mangled) += n; in gnu_special()
2862 p = strpbrk (*mangled, cplus_markers); in gnu_special()
2863 if (success && ((p == NULL) || (p == *mangled))) in gnu_special()
2868 (*mangled)++; in gnu_special()
2880 else if ((*mangled)[0] == '_' in gnu_special()
2881 && (strchr("0123456789Qt", (*mangled)[1]) != NULL) in gnu_special()
2882 && (p = strpbrk (*mangled, cplus_markers)) != NULL) in gnu_special()
2885 (*mangled)++; in gnu_special()
2886 switch (**mangled) in gnu_special()
2890 success = demangle_qualified (work, mangled, declp, 0, 1); in gnu_special()
2893 success = demangle_template (work, mangled, declp, 0, 1, 1); in gnu_special()
2896 n = consume_count (mangled); in gnu_special()
2897 if (n < 0 || n > (long) strlen (*mangled)) in gnu_special()
2903 if (n > 10 && strncmp (*mangled, "_GLOBAL_", 8) == 0 in gnu_special()
2904 && (*mangled)[9] == 'N' in gnu_special()
2905 && (*mangled)[8] == (*mangled)[10] in gnu_special()
2906 && strchr (cplus_markers, (*mangled)[8])) in gnu_special()
2913 (*mangled) += n; in gnu_special()
2917 p = strpbrk (*mangled, cplus_markers); in gnu_special()
2921 string_appendn (declp, *mangled, n); in gnu_special()
2922 (*mangled) += n; in gnu_special()
2924 if (success && (p == *mangled)) in gnu_special()
2928 (*mangled)++; in gnu_special()
2930 n = strlen (*mangled); in gnu_special()
2931 string_appendn (declp, *mangled, n); in gnu_special()
2932 (*mangled) += n; in gnu_special()
2939 else if (strncmp (*mangled, "__thunk_", 8) == 0) in gnu_special()
2943 (*mangled) += 8; in gnu_special()
2944 delta = consume_count (mangled); in gnu_special()
2949 char *method = internal_cplus_demangle (work, ++*mangled); in gnu_special()
2958 n = strlen (*mangled); in gnu_special()
2959 (*mangled) += n; in gnu_special()
2967 else if (strncmp (*mangled, "__t", 3) == 0 in gnu_special()
2968 && ((*mangled)[3] == 'i' || (*mangled)[3] == 'f')) in gnu_special()
2970 p = (*mangled)[3] == 'i' ? " type_info node" : " type_info function"; in gnu_special()
2971 (*mangled) += 4; in gnu_special()
2972 switch (**mangled) in gnu_special()
2976 success = demangle_qualified (work, mangled, declp, 0, 1); in gnu_special()
2979 success = demangle_template (work, mangled, declp, 0, 1, 1); in gnu_special()
2982 success = do_type (work, mangled, declp); in gnu_special()
2985 if (success && **mangled != '\0') in gnu_special()
2998 recursively_demangle(struct work_stuff *work, const char **mangled, in recursively_demangle() argument
3005 memcpy (recurse, *mangled, namelength); in recursively_demangle()
3017 string_appendn (result, *mangled, namelength); in recursively_demangle()
3020 *mangled += namelength; in recursively_demangle()
3047 arm_special (const char **mangled, string *declp) in arm_special() argument
3053 if (strncmp (*mangled, ARM_VTABLE_STRING, ARM_VTABLE_STRLEN) == 0) in arm_special()
3059 scan = *mangled + ARM_VTABLE_STRLEN; in arm_special()
3073 (*mangled) += ARM_VTABLE_STRLEN; in arm_special()
3074 while (**mangled != '\0') in arm_special()
3076 n = consume_count (mangled); in arm_special()
3078 || n > (long) strlen (*mangled)) in arm_special()
3080 string_prependn (declp, *mangled, n); in arm_special()
3081 (*mangled) += n; in arm_special()
3082 if ((*mangled)[0] == '_' && (*mangled)[1] == '_') in arm_special()
3085 (*mangled) += 2; in arm_special()
3130 demangle_qualified (struct work_stuff *work, const char **mangled, in demangle_qualified() argument
3148 if ((*mangled)[0] == 'K') in demangle_qualified()
3152 (*mangled)++; in demangle_qualified()
3153 idx = consume_count_with_underscores (mangled); in demangle_qualified()
3160 switch ((*mangled)[1]) in demangle_qualified()
3166 (*mangled)++; in demangle_qualified()
3167 qualifiers = consume_count_with_underscores (mangled); in demangle_qualified()
3182 num[0] = (*mangled)[1]; in demangle_qualified()
3189 if ((*mangled)[2] == '_') in demangle_qualified()
3191 (*mangled)++; in demangle_qualified()
3193 (*mangled) += 2; in demangle_qualified()
3212 if (*mangled[0] == '_') in demangle_qualified()
3213 (*mangled)++; in demangle_qualified()
3215 if (*mangled[0] == 't') in demangle_qualified()
3223 success = demangle_template(work, mangled, &temp, in demangle_qualified()
3228 else if (*mangled[0] == 'K') in demangle_qualified()
3231 (*mangled)++; in demangle_qualified()
3232 idx = consume_count_with_underscores (mangled); in demangle_qualified()
3249 namelength = consume_count (mangled); in demangle_qualified()
3255 recursively_demangle(work, mangled, &temp, namelength); in demangle_qualified()
3260 success = do_type (work, mangled, &last_name); in demangle_qualified()
3389 do_type (struct work_stuff *work, const char **mangled, string *result) in do_type() argument
3407 switch (**mangled) in do_type()
3413 (*mangled)++; in do_type()
3422 (*mangled)++; in do_type()
3431 ++(*mangled); in do_type()
3439 if (**mangled != '_') in do_type()
3440 success = demangle_template_value_parm (work, mangled, &decl, in do_type()
3442 if (**mangled == '_') in do_type()
3443 ++(*mangled); in do_type()
3450 (*mangled)++; in do_type()
3451 if (!get_count (mangled, &n) || n >= work -> ntypes) in do_type()
3458 mangled = &remembered_type; in do_type()
3464 (*mangled)++; in do_type()
3474 if (!demangle_nested_args (work, mangled, &decl) in do_type()
3475 || (**mangled != '_' && **mangled != '\0')) in do_type()
3480 if (success && (**mangled == '_')) in do_type()
3481 (*mangled)++; in do_type()
3489 member = **mangled == 'M'; in do_type()
3490 (*mangled)++; in do_type()
3496 if (**mangled != 'Q') in do_type()
3499 if (ISDIGIT ((unsigned char)**mangled)) in do_type()
3501 n = consume_count (mangled); in do_type()
3503 || (int) strlen (*mangled) < n) in do_type()
3508 string_prependn (&decl, *mangled, n); in do_type()
3509 *mangled += n; in do_type()
3511 else if (**mangled == 'X' || **mangled == 'Y') in do_type()
3514 do_type (work, mangled, &temp); in do_type()
3518 else if (**mangled == 't') in do_type()
3522 success = demangle_template (work, mangled, &temp, in do_type()
3532 else if (**mangled == 'Q') in do_type()
3534 success = demangle_qualified (work, mangled, &decl, in do_type()
3549 switch (**mangled) in do_type()
3554 type_quals |= code_for_qualifier (**mangled); in do_type()
3555 (*mangled)++; in do_type()
3562 if (*(*mangled)++ != 'F') in do_type()
3568 if ((member && !demangle_nested_args (work, mangled, &decl)) in do_type()
3569 || **mangled != '_') in do_type()
3574 (*mangled)++; in do_type()
3587 (*mangled)++; in do_type()
3598 string_prepend (&decl, demangle_qualifier (**mangled)); in do_type()
3600 (*mangled)++; in do_type()
3613 if (success) switch (**mangled) in do_type()
3619 success = demangle_qualified (work, mangled, result, 0, 1); in do_type()
3625 (*mangled)++; in do_type()
3626 if (!get_count (mangled, &n) || n >= work -> numb) in do_type()
3638 (*mangled)++; in do_type()
3639 idx = consume_count_with_underscores (mangled); in do_type()
3643 || consume_count_with_underscores (mangled) == -1) in do_type()
3659 success = demangle_fund_type (work, mangled, result); in do_type()
3699 const char **mangled, string *result) in demangle_fund_type() argument
3711 switch (**mangled) in demangle_fund_type()
3720 string_prepend (result, demangle_qualifier (**mangled)); in demangle_fund_type()
3722 (*mangled)++; in demangle_fund_type()
3725 (*mangled)++; in demangle_fund_type()
3730 (*mangled)++; in demangle_fund_type()
3735 (*mangled)++; in demangle_fund_type()
3747 switch (**mangled) in demangle_fund_type()
3753 (*mangled)++; in demangle_fund_type()
3758 (*mangled)++; in demangle_fund_type()
3763 (*mangled)++; in demangle_fund_type()
3768 (*mangled)++; in demangle_fund_type()
3773 (*mangled)++; in demangle_fund_type()
3778 (*mangled)++; in demangle_fund_type()
3784 (*mangled)++; in demangle_fund_type()
3790 (*mangled)++; in demangle_fund_type()
3796 (*mangled)++; in demangle_fund_type()
3802 (*mangled)++; in demangle_fund_type()
3808 (*mangled)++; in demangle_fund_type()
3814 (*mangled)++; in demangle_fund_type()
3815 if (!ISDIGIT ((unsigned char)**mangled)) in demangle_fund_type()
3821 (*mangled)++; in demangle_fund_type()
3822 if (**mangled == '_') in demangle_fund_type()
3825 (*mangled)++; in demangle_fund_type()
3827 i < (long) sizeof (buf) - 1 && **mangled && **mangled != '_'; in demangle_fund_type()
3828 (*mangled)++, i++) in demangle_fund_type()
3829 buf[i] = **mangled; in demangle_fund_type()
3830 if (**mangled != '_') in demangle_fund_type()
3836 (*mangled)++; in demangle_fund_type()
3840 strncpy (buf, *mangled, 2); in demangle_fund_type()
3842 *mangled += min (strlen (*mangled), 2); in demangle_fund_type()
3866 if (demangle_class_name (work, mangled, &btype)) { in demangle_fund_type()
3880 success = demangle_template (work, mangled, &btype, 0, 1, 1); in demangle_fund_type()
3899 const char **mangled, string *result) in do_hpacc_template_const_value() argument
3903 if (**mangled != 'U' && **mangled != 'S') in do_hpacc_template_const_value()
3906 unsigned_const = (**mangled == 'U'); in do_hpacc_template_const_value()
3908 (*mangled)++; in do_hpacc_template_const_value()
3910 switch (**mangled) in do_hpacc_template_const_value()
3916 (*mangled)++; in do_hpacc_template_const_value()
3921 (*mangled)++; in do_hpacc_template_const_value()
3928 if (!(ISDIGIT ((unsigned char)**mangled))) in do_hpacc_template_const_value()
3933 while (ISDIGIT ((unsigned char)**mangled)) in do_hpacc_template_const_value()
3935 char_str[0] = **mangled; in do_hpacc_template_const_value()
3937 (*mangled)++; in do_hpacc_template_const_value()
3953 do_hpacc_template_literal (struct work_stuff *work, const char **mangled, in do_hpacc_template_literal() argument
3960 if (**mangled != 'A') in do_hpacc_template_literal()
3963 (*mangled)++; in do_hpacc_template_literal()
3965 literal_len = consume_count (mangled); in do_hpacc_template_literal()
3976 memcpy (recurse, *mangled, literal_len); in do_hpacc_template_literal()
3988 string_appendn (result, *mangled, literal_len); in do_hpacc_template_literal()
3990 (*mangled) += literal_len; in do_hpacc_template_literal()
4026 do_arg (struct work_stuff *work, const char **mangled, string *result) in do_arg() argument
4030 const char *start = *mangled; in do_arg()
4046 if (**mangled == 'n') in do_arg()
4049 (*mangled)++; in do_arg()
4050 work->nrepeats = consume_count(mangled); in do_arg()
4058 if (**mangled != '_') in do_arg()
4063 (*mangled)++; in do_arg()
4067 return do_arg (work, mangled, result); in do_arg()
4079 if (!do_type (work, mangled, work->previous_argument)) in do_arg()
4084 remember_type (work, start, *mangled - start); in do_arg()
4272 demangle_args (struct work_stuff *work, const char **mangled, in demangle_args() argument
4285 if (**mangled == '\0') in demangle_args()
4291 while ((**mangled != '_' && **mangled != '\0' && **mangled != 'e') in demangle_args()
4294 if ((**mangled == 'N') || (**mangled == 'T')) in demangle_args()
4296 temptype = *(*mangled)++; in demangle_args()
4300 if (!get_count (mangled, &r)) in demangle_args()
4317 if ((t = consume_count(mangled)) <= 0) in demangle_args()
4324 if (!get_count (mangled, &t)) in demangle_args()
4362 if (!do_arg (work, mangled, &arg)) in demangle_args()
4371 if (**mangled == 'e') in demangle_args()
4373 (*mangled)++; in demangle_args()
4395 demangle_nested_args (struct work_stuff *work, const char **mangled, in demangle_nested_args() argument
4416 result = demangle_args (work, mangled, declp); in demangle_nested_args()
4432 demangle_function_name (struct work_stuff *work, const char **mangled, in demangle_function_name() argument
4439 string_appendn (declp, (*mangled), scan - (*mangled)); in demangle_function_name()
4447 (*mangled) = scan + 2; in demangle_function_name()
4453 if (HP_DEMANGLING && (**mangled == 'X')) in demangle_function_name()
4455 demangle_arm_hp_template (work, mangled, 0, declp); in demangle_function_name()