Lines Matching full:work

61 #define CURRENT_DEMANGLING_STYLE work->options
144 #define PRINT_ANSI_QUALIFIERS (work -> options & DMGL_ANSI)
145 #define PRINT_ARG_TYPES (work -> options & DMGL_PARAMS)
322 #define SCOPE_STRING(work) ((work->options & DMGL_JAVA) ? "." : "::") argument
348 demangle_template_template_parm (struct work_stuff *work,
352 demangle_template (struct work_stuff *work, const char **, string *,
640 struct work_stuff work[1]; in cplus_demangle_opname() local
646 memset ((char *) work, 0, sizeof (work)); in cplus_demangle_opname()
647 work->options = options; in cplus_demangle_opname()
655 if (do_type (work, &tem, &type)) in cplus_demangle_opname()
749 if (do_type (work, &tem, &type)) in cplus_demangle_opname()
757 squangle_mop_up (work); in cplus_demangle_opname()
849 struct work_stuff work[1]; in cplus_demangle() local
854 memset ((char *) work, 0, sizeof (work)); in cplus_demangle()
855 work->options = options; in cplus_demangle()
856 if ((work->options & DMGL_STYLE_MASK) == 0) in cplus_demangle()
857 work->options |= (int) current_demangling_style & DMGL_STYLE_MASK; in cplus_demangle()
862 ret = cplus_demangle_v3 (mangled, work->options); in cplus_demangle()
877 ret = internal_cplus_demangle (work, mangled); in cplus_demangle()
878 squangle_mop_up (work); in cplus_demangle()
1011 internal_cplus_demangle (struct work_stuff *work, const char *mangled) in internal_cplus_demangle() argument
1018 s1 = work->constructor; in internal_cplus_demangle()
1019 s2 = work->destructor; in internal_cplus_demangle()
1020 s3 = work->static_type; in internal_cplus_demangle()
1021 s4 = work->type_quals; in internal_cplus_demangle()
1022 work->constructor = work->destructor = 0; in internal_cplus_demangle()
1023 work->type_quals = TYPE_UNQUALIFIED; in internal_cplus_demangle()
1024 work->dllimported = 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()
1047 success = demangle_signature (work, &mangled, &decl); in internal_cplus_demangle()
1049 if (work->constructor == 2) in internal_cplus_demangle()
1052 work->constructor = 0; in internal_cplus_demangle()
1054 else if (work->destructor == 2) in internal_cplus_demangle()
1057 work->destructor = 0; in internal_cplus_demangle()
1059 else if (work->dllimported == 1) in internal_cplus_demangle()
1062 work->dllimported = 0; in internal_cplus_demangle()
1064 demangled = mop_up (work, &decl, success); in internal_cplus_demangle()
1066 work->constructor = s1; in internal_cplus_demangle()
1067 work->destructor = s2; in internal_cplus_demangle()
1068 work->static_type = s3; in internal_cplus_demangle()
1069 work->type_quals = s4; in internal_cplus_demangle()
1076 squangle_mop_up (struct work_stuff *work) in squangle_mop_up() argument
1079 forget_B_and_K_types (work); in squangle_mop_up()
1080 if (work -> btypevec != NULL) in squangle_mop_up()
1082 free ((char *) work -> btypevec); in squangle_mop_up()
1084 if (work -> ktypevec != NULL) in squangle_mop_up()
1086 free ((char *) work -> ktypevec); in squangle_mop_up()
1091 /* Copy the work state and storage. */
1160 delete_non_B_K_work_stuff (struct work_stuff *work) in delete_non_B_K_work_stuff() argument
1164 forget_types (work); in delete_non_B_K_work_stuff()
1165 if (work -> typevec != NULL) in delete_non_B_K_work_stuff()
1167 free ((char *) work -> typevec); in delete_non_B_K_work_stuff()
1168 work -> typevec = NULL; in delete_non_B_K_work_stuff()
1169 work -> typevec_size = 0; in delete_non_B_K_work_stuff()
1171 if (work->tmpl_argvec) in delete_non_B_K_work_stuff()
1175 for (i = 0; i < work->ntmpl_args; i++) in delete_non_B_K_work_stuff()
1176 if (work->tmpl_argvec[i]) in delete_non_B_K_work_stuff()
1177 free ((char*) work->tmpl_argvec[i]); in delete_non_B_K_work_stuff()
1179 free ((char*) work->tmpl_argvec); in delete_non_B_K_work_stuff()
1180 work->tmpl_argvec = NULL; in delete_non_B_K_work_stuff()
1182 if (work->previous_argument) in delete_non_B_K_work_stuff()
1184 string_delete (work->previous_argument); in delete_non_B_K_work_stuff()
1185 free ((char*) work->previous_argument); in delete_non_B_K_work_stuff()
1186 work->previous_argument = NULL; in delete_non_B_K_work_stuff()
1193 delete_work_stuff (struct work_stuff *work) in delete_work_stuff() argument
1195 delete_non_B_K_work_stuff (work); in delete_work_stuff()
1196 squangle_mop_up (work); in delete_work_stuff()
1203 mop_up (struct work_stuff *work, string *declp, int success) in mop_up() argument
1207 delete_non_B_K_work_stuff (work); in mop_up()
1233 demangle_signature (struct work_stuff *work, const char **mangled,
1255 demangle_signature (struct work_stuff *work, in demangle_signature() argument
1272 success = demangle_qualified (work, mangled, declp, 1, 0); in demangle_signature()
1274 remember_type (work, oldmangled, *mangled - oldmangled); in demangle_signature()
1282 success = demangle_qualified (work, mangled, declp, 1, 0); in demangle_signature()
1297 work -> static_type = 1; in demangle_signature()
1303 work->type_quals |= code_for_qualifier (**mangled); in demangle_signature()
1332 work->temp_start = -1; /* uppermost call to demangle_class */ in demangle_signature()
1333 success = demangle_class (work, mangled, declp); in demangle_signature()
1336 remember_type (work, oldmangled, *mangled - oldmangled); in demangle_signature()
1351 success = do_type (work, mangled, &s); in demangle_signature()
1354 string_append (&s, SCOPE_STRING (work)); in demangle_signature()
1381 forget_types (work); in demangle_signature()
1383 success = demangle_args (work, mangled, declp); in demangle_signature()
1391 success = do_type (work, mangled, &tname); in demangle_signature()
1405 success = demangle_template (work, mangled, &tname, in demangle_signature()
1409 remember_type (work, oldmangled, *mangled - oldmangled); in demangle_signature()
1411 string_append (&tname, SCOPE_STRING (work)); in demangle_signature()
1414 if (work -> destructor & 1) in demangle_signature()
1418 work->destructor -= 1; in demangle_signature()
1420 if ((work->constructor & 1) || (work->destructor & 1)) in demangle_signature()
1423 work->constructor -= 1; in demangle_signature()
1438 success = do_type (work, mangled, &return_type); in demangle_signature()
1468 success = demangle_template (work, mangled, declp, 0, 0, in demangle_signature()
1470 if (!(work->constructor & 1)) in demangle_signature()
1485 success = demangle_args (work, mangled, declp); in demangle_signature()
1506 forget_types (work); in demangle_signature()
1508 success = demangle_args (work, mangled, declp); in demangle_signature()
1526 success = demangle_args (work, mangled, declp); in demangle_signature()
1531 if (work->static_type) in demangle_signature()
1533 if (work->type_quals != TYPE_UNQUALIFIED) in demangle_signature()
1536 string_append (declp, qualifier_string (work->type_quals)); in demangle_signature()
1546 demangle_method_args (struct work_stuff *work, const char **mangled,
1551 if (work -> static_type)
1559 success = demangle_args (work, mangled, declp);
1567 demangle_template_template_parm (struct work_stuff *work, in demangle_template_template_parm() argument
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
1671 success = demangle_template_value_parm (work, mangled, s, tk); in demangle_expression()
1686 demangle_integral_value (struct work_stuff *work, in demangle_integral_value() argument
1692 success = demangle_expression (work, mangled, s, tk_integral); in demangle_integral_value()
1694 success = demangle_qualified (work, mangled, s, 0, 1); in demangle_integral_value()
1782 demangle_real_value (struct work_stuff *work, in demangle_real_value() argument
1786 return demangle_expression (work, mangled, s, tk_real); in demangle_real_value()
1823 demangle_template_value_parm (struct work_stuff *work, const char **mangled, in demangle_template_value_parm() argument
1836 || (work->tmpl_argvec && idx >= work->ntmpl_args) in demangle_template_value_parm()
1839 if (work->tmpl_argvec) in demangle_template_value_parm()
1840 string_append (s, work->tmpl_argvec[idx]); in demangle_template_value_parm()
1845 success = demangle_integral_value (work, mangled, s); in demangle_template_value_parm()
1878 success = demangle_real_value (work, mangled, s); in demangle_template_value_parm()
1882 success = demangle_qualified (work, mangled, s, in demangle_template_value_parm()
1902 q = cplus_demangle (p, work->options); in demangle_template_value_parm()
1932 demangle_template (struct work_stuff *work, const char **mangled, in demangle_template() argument
1955 || (work->tmpl_argvec && idx >= work->ntmpl_args) in demangle_template()
1959 if (work->tmpl_argvec) in demangle_template()
1961 string_append (tname, work->tmpl_argvec[idx]); in demangle_template()
1963 string_append (trawname, work->tmpl_argvec[idx]); in demangle_template()
1979 is_java_array = (work -> options & DMGL_JAVA) in demangle_template()
2000 work->tmpl_argvec = XNEWVEC (char *, r); in demangle_template()
2001 work->ntmpl_args = r; in demangle_template()
2003 work->tmpl_argvec[i] = 0; in demangle_template()
2016 success = do_type (work, mangled, &temp); in demangle_template()
2025 work->tmpl_argvec[i] = XNEWVEC (char, len + 1); in demangle_template()
2026 memcpy (work->tmpl_argvec[i], temp.b, len); in demangle_template()
2027 work->tmpl_argvec[i][len] = '\0'; in demangle_template()
2041 success = demangle_template_template_parm (work, mangled, tname); in demangle_template()
2053 work->tmpl_argvec[i] = XNEWVEC (char, len + 1); in demangle_template()
2054 memcpy (work->tmpl_argvec[i], *mangled, len); in demangle_template()
2055 work->tmpl_argvec[i][len] = '\0'; 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()
2099 work->tmpl_argvec[i] = XNEWVEC (char, len + 1); in demangle_template()
2100 memcpy (work->tmpl_argvec[i], s->b, len); in demangle_template()
2101 work->tmpl_argvec[i][len] = '\0'; in demangle_template()
2122 const int bindex = register_Btype (work); in demangle_template()
2123 remember_Btype (work, tname->b, LEN_STRING (tname), bindex); in demangle_template()
2127 if (work -> static_type) in demangle_template()
2135 success = demangle_args (work, mangled, declp); in demangle_template()
2143 arm_pt (struct work_stuff *work, const char *mangled, in arm_pt() argument
2197 demangle_arm_hp_template (struct work_stuff *work, const char **mangled, in demangle_arm_hp_template() argument
2221 if (work->temp_start == -1) /* non-recursive call */ in demangle_arm_hp_template()
2222 work->temp_start = declp->p - declp->b; in demangle_arm_hp_template()
2226 hold_options = work->options; in demangle_arm_hp_template()
2227 work->options |= DMGL_PARAMS; 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()
2275 work->options = hold_options; in demangle_arm_hp_template()
2279 else if (arm_pt (work, *mangled, n, &p, &args)) in demangle_arm_hp_template()
2286 if (work->temp_start == -1) /* non-recursive call */ in demangle_arm_hp_template()
2287 work->temp_start = declp->p - declp->b; in demangle_arm_hp_template()
2291 hold_options = work->options; in demangle_arm_hp_template()
2292 work->options |= DMGL_PARAMS; in demangle_arm_hp_template()
2308 if (!do_type (work, &args, &type_str)) in demangle_arm_hp_template()
2332 if (!do_type (work, &args, &arg)) in demangle_arm_hp_template()
2338 work->options = hold_options; in demangle_arm_hp_template()
2351 work->options = hold_options; in demangle_arm_hp_template()
2363 if (work->temp_start == -1) /* non-recursive call only */ in demangle_arm_hp_template()
2364 work->temp_start = 0; /* disable in recursive calls */ in demangle_arm_hp_template()
2375 demangle_class_name (struct work_stuff *work, const char **mangled, in demangle_class_name() argument
2386 demangle_arm_hp_template (work, mangled, n, declp); in demangle_class_name()
2402 demangle_class (struct work_stuff *work, const char **mangled,
2414 If the CONSTRUCTOR or DESTRUCTOR flags are set in WORK, then
2429 demangle_class (struct work_stuff *work, const char **mangled, string *declp) in demangle_class() argument
2437 btype = register_Btype (work); in demangle_class()
2438 if (demangle_class_name (work, mangled, &class_name)) in demangle_class()
2441 if ((work->constructor & 1) || (work->destructor & 1)) in demangle_class()
2444 if (work->temp_start && (work->temp_start != -1)) in demangle_class()
2446 class_name.p = class_name.b + work->temp_start; in demangle_class()
2449 if (work -> destructor & 1) in demangle_class()
2452 work -> destructor -= 1; in demangle_class()
2456 work -> constructor -= 1; in demangle_class()
2460 remember_Ktype (work, class_name.b, LEN_STRING(&class_name)); in demangle_class()
2461 remember_Btype (work, class_name.b, LEN_STRING(&class_name), btype); in demangle_class()
2462 string_prepend (declp, SCOPE_STRING (work)); in demangle_class()
2481 iterate_demangle_function (struct work_stuff *work, const char **mangled, in iterate_demangle_function() argument
2497 demangle_function_name (work, mangled, declp, scan); in iterate_demangle_function()
2506 work_stuff_copy_to_from (&work_init, work); 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()
2525 work_stuff_copy_to_from (work, &work_init); in iterate_demangle_function()
2556 demangle_prefix (struct work_stuff *work, const char **mangled,
2581 demangle_prefix (struct work_stuff *work, const char **mangled, in demangle_prefix() argument
2596 work->dllimported = 1; in demangle_prefix()
2607 work->destructor = 2; in demangle_prefix()
2608 if (gnu_special (work, mangled, declp)) in demangle_prefix()
2615 work->constructor = 2; in demangle_prefix()
2616 if (gnu_special (work, mangled, declp)) in demangle_prefix()
2625 work->destructor = 2; in demangle_prefix()
2631 work->constructor = 2; in demangle_prefix()
2663 else if (work -> static_type) in demangle_prefix()
2693 work -> constructor += 1; 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()
2735 return iterate_demangle_function (work, mangled, declp, scan); in demangle_prefix()
2744 return iterate_demangle_function (work, mangled, declp, scan); in demangle_prefix()
2752 if (!success && (work->constructor == 2 || work->destructor == 2)) in demangle_prefix()
2770 gnu_special (struct work_stuff *work, const char **mangled,
2790 gnu_special (struct work_stuff *work, const char **mangled, string *declp) in gnu_special() argument
2802 work -> destructor += 1; in gnu_special()
2815 input string, which means that demangle_signature has no work 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()
2860 string_append (declp, SCOPE_STRING (work)); 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()
2922 string_append (declp, SCOPE_STRING (work)); in gnu_special()
2942 char *method = internal_cplus_demangle (work, ++*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()
2991 recursively_demangle(struct work_stuff *work, const char **mangled, in recursively_demangle() argument
3001 recurse_dem = cplus_demangle (recurse, work->options); in recursively_demangle()
3050 input string, which means that demangle_signature has no work in arm_special()
3123 demangle_qualified (struct work_stuff *work, const char **mangled, in demangle_qualified() argument
3131 int bindex = register_Btype (work); in demangle_qualified()
3136 && ((work->constructor & 1) || (work->destructor & 1))); in demangle_qualified()
3147 if (idx == -1 || idx >= work -> numk) in demangle_qualified()
3150 string_append (&temp, work -> ktypevec[idx]); in demangle_qualified()
3216 success = demangle_template(work, mangled, &temp, in demangle_qualified()
3226 if (idx == -1 || idx >= work->numk) in demangle_qualified()
3229 string_append (&temp, work->ktypevec[idx]); in demangle_qualified()
3248 recursively_demangle(work, mangled, &temp, namelength); in demangle_qualified()
3253 success = do_type (work, mangled, &last_name); in demangle_qualified()
3261 remember_Ktype (work, temp.b, LEN_STRING (&temp)); in demangle_qualified()
3264 string_append (&temp, SCOPE_STRING (work)); in demangle_qualified()
3267 remember_Btype (work, temp.b, LEN_STRING (&temp), bindex); in demangle_qualified()
3276 string_append (&temp, SCOPE_STRING (work)); in demangle_qualified()
3277 if (work -> destructor & 1) in demangle_qualified()
3290 string_append (&temp, SCOPE_STRING (work)); in demangle_qualified()
3382 do_type (struct work_stuff *work, const char **mangled, string *result) in do_type() argument
3407 if (! (work -> options & DMGL_JAVA)) in do_type()
3433 success = demangle_template_value_parm (work, mangled, &decl, in do_type()
3444 if (!get_count (mangled, &n) || n >= work -> ntypes) in do_type()
3450 remembered_type = work -> typevec[n]; in do_type()
3467 if (!demangle_nested_args (work, mangled, &decl) in do_type()
3490 string_prepend (&decl, SCOPE_STRING (work)); in do_type()
3507 do_type (work, mangled, &temp); in do_type()
3515 success = demangle_template (work, mangled, &temp, in do_type()
3527 success = demangle_qualified (work, mangled, &decl, in do_type()
3561 if ((member && !demangle_nested_args (work, mangled, &decl)) in do_type()
3612 success = demangle_qualified (work, mangled, result, 0, 1); in do_type()
3619 if (!get_count (mangled, &n) || n >= work -> numb) in do_type()
3622 string_append (result, work->btypevec[n]); in do_type()
3635 || (work->tmpl_argvec && idx >= work->ntmpl_args) in do_type()
3642 if (work->tmpl_argvec) in do_type()
3643 string_append (result, work->tmpl_argvec[idx]); in do_type()
3652 success = demangle_fund_type (work, mangled, result); in do_type()
3680 the WORK structure, decode the types and add them to the result.
3691 demangle_fund_type (struct work_stuff *work, in demangle_fund_type() argument
3856 int bindex = register_Btype (work); in demangle_fund_type()
3859 if (demangle_class_name (work, mangled, &btype)) { in demangle_fund_type()
3860 remember_Btype (work, btype.b, LEN_STRING (&btype), bindex); in demangle_fund_type()
3873 success = demangle_template (work, mangled, &btype, 0, 1, 1); in demangle_fund_type()
3891 do_hpacc_template_const_value (struct work_stuff *work ATTRIBUTE_UNUSED, in do_hpacc_template_const_value()
3946 do_hpacc_template_literal (struct work_stuff *work, const char **mangled, in do_hpacc_template_literal() argument
3972 recurse_dem = cplus_demangle (recurse, work->options); in do_hpacc_template_literal()
4019 do_arg (struct work_stuff *work, const char **mangled, string *result) in do_arg() argument
4027 if (work->nrepeats > 0) in do_arg()
4029 --work->nrepeats; in do_arg()
4031 if (work->previous_argument == 0) in do_arg()
4035 string_appends (result, work->previous_argument); in do_arg()
4043 work->nrepeats = consume_count(mangled); in do_arg()
4045 if (work->nrepeats <= 0) in do_arg()
4049 if (work->nrepeats > 9) in do_arg()
4060 return do_arg (work, mangled, result); in do_arg()
4063 /* Save the result in WORK->previous_argument so that we can find it in do_arg()
4067 if (work->previous_argument) in do_arg()
4068 string_delete (work->previous_argument); in do_arg()
4070 work->previous_argument = XNEW (string); in do_arg()
4072 if (!do_type (work, mangled, work->previous_argument)) in do_arg()
4075 string_appends (result, work->previous_argument); in do_arg()
4077 remember_type (work, start, *mangled - start); in do_arg()
4082 remember_type (struct work_stuff *work, const char *start, int len) in remember_type() argument
4086 if (work->forgetting_types) in remember_type()
4089 if (work -> ntypes >= work -> typevec_size) in remember_type()
4091 if (work -> typevec_size == 0) in remember_type()
4093 work -> typevec_size = 3; in remember_type()
4094 work -> typevec = XNEWVEC (char *, work->typevec_size); in remember_type()
4098 work -> typevec_size *= 2; in remember_type()
4099 work -> typevec in remember_type()
4100 = XRESIZEVEC (char *, work->typevec, work->typevec_size); in remember_type()
4106 work -> typevec[work -> ntypes++] = tem; in remember_type()
4112 remember_Ktype (struct work_stuff *work, const char *start, int len) in remember_Ktype() argument
4116 if (work -> numk >= work -> ksize) in remember_Ktype()
4118 if (work -> ksize == 0) in remember_Ktype()
4120 work -> ksize = 5; in remember_Ktype()
4121 work -> ktypevec = XNEWVEC (char *, work->ksize); in remember_Ktype()
4125 work -> ksize *= 2; in remember_Ktype()
4126 work -> ktypevec in remember_Ktype()
4127 = XRESIZEVEC (char *, work->ktypevec, work->ksize); in remember_Ktype()
4133 work -> ktypevec[work -> numk++] = tem; in remember_Ktype()
4141 register_Btype (struct work_stuff *work) in register_Btype() argument
4145 if (work -> numb >= work -> bsize) in register_Btype()
4147 if (work -> bsize == 0) in register_Btype()
4149 work -> bsize = 5; in register_Btype()
4150 work -> btypevec = XNEWVEC (char *, work->bsize); in register_Btype()
4154 work -> bsize *= 2; in register_Btype()
4155 work -> btypevec in register_Btype()
4156 = XRESIZEVEC (char *, work->btypevec, work->bsize); in register_Btype()
4159 ret = work -> numb++; in register_Btype()
4160 work -> btypevec[ret] = NULL; in register_Btype()
4167 remember_Btype (struct work_stuff *work, const char *start, in remember_Btype() argument
4175 work -> btypevec[index] = tem; in remember_Btype()
4180 forget_B_and_K_types (struct work_stuff *work) in forget_B_and_K_types() argument
4184 while (work -> numk > 0) in forget_B_and_K_types()
4186 i = --(work -> numk); in forget_B_and_K_types()
4187 if (work -> ktypevec[i] != NULL) in forget_B_and_K_types()
4189 free (work -> ktypevec[i]); in forget_B_and_K_types()
4190 work -> ktypevec[i] = NULL; in forget_B_and_K_types()
4194 while (work -> numb > 0) in forget_B_and_K_types()
4196 i = --(work -> numb); in forget_B_and_K_types()
4197 if (work -> btypevec[i] != NULL) in forget_B_and_K_types()
4199 free (work -> btypevec[i]); in forget_B_and_K_types()
4200 work -> btypevec[i] = NULL; in forget_B_and_K_types()
4207 forget_types (struct work_stuff *work) in forget_types() argument
4211 while (work -> ntypes > 0) in forget_types()
4213 i = --(work -> ntypes); in forget_types()
4214 if (work -> typevec[i] != NULL) in forget_types()
4216 free (work -> typevec[i]); in forget_types()
4217 work -> typevec[i] = NULL; in forget_types()
4265 demangle_args (struct work_stuff *work, const char **mangled, in demangle_args() argument
4285 || work->nrepeats > 0) in demangle_args()
4302 if ((HP_DEMANGLING || ARM_DEMANGLING || EDG_DEMANGLING) && work -> ntypes >= 10) in demangle_args()
4328 if ((t < 0) || (t >= work -> ntypes)) in demangle_args()
4332 while (work->nrepeats > 0 || --r >= 0) in demangle_args()
4334 tem = work -> typevec[t]; in demangle_args()
4339 if (!do_arg (work, &tem, &arg)) in demangle_args()
4355 if (!do_arg (work, mangled, &arg)) in demangle_args()
4388 demangle_nested_args (struct work_stuff *work, const char **mangled, in demangle_nested_args() argument
4399 ++work->forgetting_types; in demangle_nested_args()
4403 saved_previous_argument = work->previous_argument; in demangle_nested_args()
4404 saved_nrepeats = work->nrepeats; in demangle_nested_args()
4405 work->previous_argument = 0; in demangle_nested_args()
4406 work->nrepeats = 0; in demangle_nested_args()
4409 result = demangle_args (work, mangled, declp); in demangle_nested_args()
4412 if (work->previous_argument) in demangle_nested_args()
4414 string_delete (work->previous_argument); in demangle_nested_args()
4415 free ((char *) work->previous_argument); in demangle_nested_args()
4417 work->previous_argument = saved_previous_argument; in demangle_nested_args()
4418 --work->forgetting_types; in demangle_nested_args()
4419 work->nrepeats = saved_nrepeats; in demangle_nested_args()
4425 demangle_function_name (struct work_stuff *work, const char **mangled, in demangle_function_name() argument
4448 demangle_arm_hp_template (work, mangled, 0, declp); in demangle_function_name()
4462 work -> constructor += 1; in demangle_function_name()
4468 work -> destructor += 1; in demangle_function_name()
4518 if (do_type (work, &tem, &type)) in demangle_function_name()
4532 if (do_type (work, &tem, &type)) in demangle_function_name()