Lines Matching refs:dpi

3431 d_print_init (struct d_print_info *dpi, demangle_callbackref callback,
3434 dpi->len = 0;
3435 dpi->last_char = '\0';
3436 dpi->templates = NULL;
3437 dpi->modifiers = NULL;
3438 dpi->pack_index = 0;
3439 dpi->flush_count = 0;
3441 dpi->callback = callback;
3442 dpi->opaque = opaque;
3444 dpi->demangle_failure = 0;
3450 d_print_error (struct d_print_info *dpi)
3452 dpi->demangle_failure = 1;
3456 d_print_saw_error (struct d_print_info *dpi)
3458 return dpi->demangle_failure != 0;
3464 d_print_flush (struct d_print_info *dpi)
3466 dpi->buf[dpi->len] = '\0';
3467 dpi->callback (dpi->buf, dpi->len, dpi->opaque);
3468 dpi->len = 0;
3469 dpi->flush_count++;
3475 d_append_char (struct d_print_info *dpi, char c)
3477 if (dpi->len == sizeof (dpi->buf) - 1)
3478 d_print_flush (dpi);
3480 dpi->buf[dpi->len++] = c;
3481 dpi->last_char = c;
3485 d_append_buffer (struct d_print_info *dpi, const char *s, size_t l)
3490 d_append_char (dpi, s[i]);
3494 d_append_string (struct d_print_info *dpi, const char *s)
3496 d_append_buffer (dpi, s, strlen (s));
3500 d_append_num (struct d_print_info *dpi, long l)
3504 d_append_string (dpi, buf);
3508 d_last_char (struct d_print_info *dpi)
3510 return dpi->last_char;
3528 struct d_print_info dpi;
3530 d_print_init (&dpi, callback, opaque);
3532 d_print_comp (&dpi, options, dc);
3534 d_print_flush (&dpi);
3536 return ! d_print_saw_error (&dpi);
3597 d_lookup_template_argument (struct d_print_info *dpi,
3600 if (dpi->templates == NULL)
3602 d_print_error (dpi);
3607 (d_right (dpi->templates->template_decl),
3614 d_find_pack (struct d_print_info *dpi,
3624 a = d_lookup_template_argument (dpi, dc);
3642 return d_find_pack (dpi, dc->u.s_extended_operator.name);
3644 return d_find_pack (dpi, dc->u.s_ctor.name);
3646 return d_find_pack (dpi, dc->u.s_dtor.name);
3649 a = d_find_pack (dpi, d_left (dc));
3652 return d_find_pack (dpi, d_right (dc));
3675 d_print_subexpr (struct d_print_info *dpi, int options,
3683 d_append_char (dpi, '(');
3684 d_print_comp (dpi, options, dc);
3686 d_append_char (dpi, ')');
3692 d_print_comp (struct d_print_info *dpi, int options,
3701 d_print_error (dpi);
3704 if (d_print_saw_error (dpi))
3711 d_append_buffer (dpi, dc->u.s_name.s, dc->u.s_name.len);
3713 d_print_java_identifier (dpi, dc->u.s_name.s, dc->u.s_name.len);
3718 d_print_comp (dpi, options, d_left (dc));
3720 d_append_string (dpi, "::");
3722 d_append_char (dpi, '.');
3723 d_print_comp (dpi, options, d_right (dc));
3737 hold_modifiers = dpi->modifiers;
3738 dpi->modifiers = 0;
3745 d_print_error (dpi);
3749 adpm[i].next = dpi->modifiers;
3750 dpi->modifiers = &adpm[i];
3753 adpm[i].templates = dpi->templates;
3766 d_print_error (dpi);
3774 dpt.next = dpi->templates;
3775 dpi->templates = &dpt;
3796 d_print_error (dpi);
3802 dpi->modifiers = &adpm[i];
3806 adpm[i - 1].templates = dpi->templates;
3813 d_print_comp (dpi, options, d_right (dc));
3816 dpi->templates = dpt.next;
3825 d_append_char (dpi, ' ');
3826 d_print_mod (dpi, options, adpm[i].mod);
3830 dpi->modifiers = hold_modifiers;
3844 hold_dpm = dpi->modifiers;
3845 dpi->modifiers = NULL;
3857 d_print_comp (dpi, options, d_right (dc));
3858 d_append_string (dpi, "[]");
3862 d_print_comp (dpi, options, dcl);
3863 if (d_last_char (dpi) == '<')
3864 d_append_char (dpi, ' ');
3865 d_append_char (dpi, '<');
3866 d_print_comp (dpi, options, d_right (dc));
3869 if (d_last_char (dpi) == '>')
3870 d_append_char (dpi, ' ');
3871 d_append_char (dpi, '>');
3874 dpi->modifiers = hold_dpm;
3882 struct demangle_component *a = d_lookup_template_argument (dpi, dc);
3885 a = d_index_template_argument (a, dpi->pack_index);
3889 d_print_error (dpi);
3898 hold_dpt = dpi->templates;
3899 dpi->templates = hold_dpt->next;
3901 d_print_comp (dpi, options, a);
3903 dpi->templates = hold_dpt;
3909 d_print_comp (dpi, options, dc->u.s_ctor.name);
3913 d_append_char (dpi, '~');
3914 d_print_comp (dpi, options, dc->u.s_dtor.name);
3918 d_append_string (dpi, "vtable for ");
3919 d_print_comp (dpi, options, d_left (dc));
3923 d_append_string (dpi, "VTT for ");
3924 d_print_comp (dpi, options, d_left (dc));
3928 d_append_string (dpi, "construction vtable for ");
3929 d_print_comp (dpi, options, d_left (dc));
3930 d_append_string (dpi, "-in-");
3931 d_print_comp (dpi, options, d_right (dc));
3935 d_append_string (dpi, "typeinfo for ");
3936 d_print_comp (dpi, options, d_left (dc));
3940 d_append_string (dpi, "typeinfo name for ");
3941 d_print_comp (dpi, options, d_left (dc));
3945 d_append_string (dpi, "typeinfo fn for ");
3946 d_print_comp (dpi, options, d_left (dc));
3950 d_append_string (dpi, "non-virtual thunk to ");
3951 d_print_comp (dpi, options, d_left (dc));
3955 d_append_string (dpi, "virtual thunk to ");
3956 d_print_comp (dpi, options, d_left (dc));
3960 d_append_string (dpi, "covariant return thunk to ");
3961 d_print_comp (dpi, options, d_left (dc));
3965 d_append_string (dpi, "java Class for ");
3966 d_print_comp (dpi, options, d_left (dc));
3970 d_append_string (dpi, "guard variable for ");
3971 d_print_comp (dpi, options, d_left (dc));
3975 d_append_string (dpi, "reference temporary #");
3976 d_print_comp (dpi, options, d_right (dc));
3977 d_append_string (dpi, " for ");
3978 d_print_comp (dpi, options, d_left (dc));
3982 d_append_string (dpi, "hidden alias for ");
3983 d_print_comp (dpi, options, d_left (dc));
3987 d_append_string (dpi, "transaction clone for ");
3988 d_print_comp (dpi, options, d_left (dc));
3992 d_append_string (dpi, "non-transaction clone for ");
3993 d_print_comp (dpi, options, d_left (dc));
3997 d_append_buffer (dpi, dc->u.s_string.string, dc->u.s_string.len);
4010 for (pdpm = dpi->modifiers; pdpm != NULL; pdpm = pdpm->next)
4020 d_print_comp (dpi, options, d_left (dc));
4035 struct demangle_component *a = d_lookup_template_argument (dpi, sub);
4037 a = d_index_template_argument (a, dpi->pack_index);
4041 d_print_error (dpi);
4068 dpm.next = dpi->modifiers;
4069 dpi->modifiers = &dpm;
4072 dpm.templates = dpi->templates;
4077 d_print_comp (dpi, options, mod_inner);
4082 d_print_mod (dpi, options, dc);
4084 dpi->modifiers = dpm.next;
4091 d_append_buffer (dpi, dc->u.s_builtin.type->name,
4094 d_append_buffer (dpi, dc->u.s_builtin.type->java_name,
4099 d_print_comp (dpi, options, d_left (dc));
4105 d_print_function_type (dpi,
4107 dc, dpi->modifiers);
4111 d_print_comp (dpi, options & ~(DMGL_RET_POSTFIX | DMGL_RET_DROP),
4119 dpm.next = dpi->modifiers;
4120 dpi->modifiers = &dpm;
4123 dpm.templates = dpi->templates;
4125 d_print_comp (dpi, options & ~(DMGL_RET_POSTFIX | DMGL_RET_DROP),
4128 dpi->modifiers = dpm.next;
4136 d_append_char (dpi, ' ');
4140 d_print_function_type (dpi,
4142 dc, dpi->modifiers);
4162 hold_modifiers = dpi->modifiers;
4165 dpi->modifiers = &adpm[0];
4168 adpm[0].templates = dpi->templates;
4181 d_print_error (dpi);
4186 adpm[i].next = dpi->modifiers;
4187 dpi->modifiers = &adpm[i];
4195 d_print_comp (dpi, options, d_right (dc));
4197 dpi->modifiers = hold_modifiers;
4205 d_print_mod (dpi, options, adpm[i].mod);
4208 d_print_array_type (dpi, options, dc, dpi->modifiers);
4218 dpm.next = dpi->modifiers;
4219 dpi->modifiers = &dpm;
4222 dpm.templates = dpi->templates;
4224 d_print_comp (dpi, options, d_right (dc));
4229 d_print_mod (dpi, options, dc);
4231 dpi->modifiers = dpm.next;
4238 d_append_string (dpi, "_Sat ");
4243 d_print_comp (dpi, options, dc->u.s_fixed.length);
4244 d_append_char (dpi, ' ');
4247 d_append_string (dpi, "_Accum");
4249 d_append_string (dpi, "_Fract");
4255 d_print_comp (dpi, options, d_left (dc));
4261 dpi->len -= 2 wouldn't work. */
4262 if (dpi->len >= sizeof (dpi->buf) - 2)
4263 d_print_flush (dpi);
4264 d_append_string (dpi, ", ");
4265 len = dpi->len;
4266 flush_count = dpi->flush_count;
4267 d_print_comp (dpi, options, d_right (dc));
4270 if (dpi->flush_count == flush_count && dpi->len == len)
4271 dpi->len -= 2;
4279 d_append_string (dpi, "operator");
4282 d_append_char (dpi, ' ');
4283 d_append_buffer (dpi, dc->u.s_operator.op->name,
4289 d_append_string (dpi, "operator ");
4290 d_print_comp (dpi, options, dc->u.s_extended_operator.name);
4294 d_append_string (dpi, "operator ");
4295 d_print_cast (dpi, options, dc);
4318 d_print_expr_op (dpi, options, d_left (dc));
4319 d_print_comp (dpi, options, d_left (d_right (dc)));
4334 d_print_expr_op (dpi, options, d_left (dc));
4335 d_print_comp (dpi, options, d_right (dc));
4339 d_print_expr_op (dpi, options, d_left (dc));
4342 d_append_char (dpi, '(');
4343 d_print_cast (dpi, options, d_left (dc));
4344 d_append_char (dpi, ')');
4346 d_print_subexpr (dpi, options, d_right (dc));
4352 d_print_error (dpi);
4362 d_append_char (dpi, '(');
4374 d_print_error (dpi);
4375 d_print_subexpr (dpi, options, d_left (func));
4378 d_print_subexpr (dpi, options, d_left (d_right (dc)));
4381 d_append_char (dpi, '[');
4382 d_print_comp (dpi, options, d_right (d_right (dc)));
4383 d_append_char (dpi, ']');
4388 d_print_expr_op (dpi, options, d_left (dc));
4389 d_print_subexpr (dpi, options, d_right (d_right (dc)));
4395 d_append_char (dpi, ')');
4401 d_print_error (dpi);
4408 d_print_error (dpi);
4411 d_print_subexpr (dpi, options, d_left (d_right (dc)));
4412 d_print_expr_op (dpi, options, d_left (dc));
4413 d_print_subexpr (dpi, options, d_left (d_right (d_right (dc))));
4414 d_append_string (dpi, " : ");
4415 d_print_subexpr (dpi, options, d_right (d_right (d_right (dc))));
4421 d_print_error (dpi);
4445 d_append_char (dpi, '-');
4446 d_print_comp (dpi, options, d_right (dc));
4452 d_append_char (dpi, 'u');
4455 d_append_char (dpi, 'l');
4458 d_append_string (dpi, "ul");
4461 d_append_string (dpi, "ll");
4464 d_append_string (dpi, "ull");
4479 d_append_string (dpi, "false");
4482 d_append_string (dpi, "true");
4495 d_append_char (dpi, '(');
4496 d_print_comp (dpi, options, d_left (dc));
4497 d_append_char (dpi, ')');
4499 d_append_char (dpi, '-');
4501 d_append_char (dpi, '[');
4502 d_print_comp (dpi, options, d_right (dc));
4504 d_append_char (dpi, ']');
4509 d_append_num (dpi, dc->u.s_number.number);
4513 d_append_string (dpi, "java resource ");
4514 d_print_comp (dpi, options, d_left (dc));
4518 d_print_comp (dpi, options, d_left (dc));
4519 d_print_comp (dpi, options, d_right (dc));
4523 d_append_char (dpi, dc->u.s_character.character);
4527 d_append_string (dpi, "decltype (");
4528 d_print_comp (dpi, options, d_left (dc));
4529 d_append_char (dpi, ')');
4536 struct demangle_component *a = d_find_pack (dpi, d_left (dc));
4542 d_print_subexpr (dpi, options, d_left (dc));
4543 d_append_string (dpi, "...");
4551 dpi->pack_index = i;
4552 d_print_comp (dpi, options, dc);
4554 d_append_string (dpi, ", ");
4563 d_append_string (dpi, "this");
4566 d_append_string (dpi, "{parm#");
4567 d_append_num (dpi, num);
4568 d_append_char (dpi, '}');
4574 d_append_string (dpi, "global constructors keyed to ");
4575 d_print_comp (dpi, options, dc->u.s_binary.left);
4579 d_append_string (dpi, "global destructors keyed to ");
4580 d_print_comp (dpi, options, dc->u.s_binary.left);
4584 d_append_string (dpi, "{lambda(");
4585 d_print_comp (dpi, options, dc->u.s_unary_num.sub);
4586 d_append_string (dpi, ")#");
4587 d_append_num (dpi, dc->u.s_unary_num.num + 1);
4588 d_append_char (dpi, '}');
4592 d_append_string (dpi, "{unnamed type#");
4593 d_append_num (dpi, dc->u.s_number.number + 1);
4594 d_append_char (dpi, '}');
4598 d_print_comp (dpi, options, d_left (dc));
4599 d_append_string (dpi, " [clone ");
4600 d_print_comp (dpi, options, d_right (dc));
4601 d_append_char (dpi, ']');
4605 d_print_error (dpi);
4616 d_print_java_identifier (struct d_print_info *dpi, const char *name, int len)
4652 d_append_char (dpi, c);
4658 d_append_char (dpi, *p);
4666 d_print_mod_list (struct d_print_info *dpi, int options,
4671 if (mods == NULL || d_print_saw_error (dpi))
4680 d_print_mod_list (dpi, options, mods->next, suffix);
4686 hold_dpt = dpi->templates;
4687 dpi->templates = mods->templates;
4691 d_print_function_type (dpi, options, mods->mod, mods->next);
4692 dpi->templates = hold_dpt;
4697 d_print_array_type (dpi, options, mods->mod, mods->next);
4698 dpi->templates = hold_dpt;
4711 hold_modifiers = dpi->modifiers;
4712 dpi->modifiers = NULL;
4713 d_print_comp (dpi, options, d_left (mods->mod));
4714 dpi->modifiers = hold_modifiers;
4717 d_append_string (dpi, "::");
4719 d_append_char (dpi, '.');
4725 d_append_string (dpi, "{default arg#");
4726 d_append_num (dpi, dc->u.s_unary_num.num + 1);
4727 d_append_string (dpi, "}::");
4736 d_print_comp (dpi, options, dc);
4738 dpi->templates = hold_dpt;
4742 d_print_mod (dpi, options, mods->mod);
4744 dpi->templates = hold_dpt;
4746 d_print_mod_list (dpi, options, mods->next, suffix);
4752 d_print_mod (struct d_print_info *dpi, int options,
4759 d_append_string (dpi, " restrict");
4763 d_append_string (dpi, " volatile");
4767 d_append_string (dpi, " const");
4770 d_append_char (dpi, ' ');
4771 d_print_comp (dpi, options, d_right (mod));
4776 d_append_char (dpi, '*');
4779 d_append_char (dpi, '&');
4782 d_append_string (dpi, "&&");
4785 d_append_string (dpi, "complex ");
4788 d_append_string (dpi, "imaginary ");
4791 if (d_last_char (dpi) != '(')
4792 d_append_char (dpi, ' ');
4793 d_print_comp (dpi, options, d_left (mod));
4794 d_append_string (dpi, "::*");
4797 d_print_comp (dpi, options, d_left (mod));
4800 d_append_string (dpi, " __vector(");
4801 d_print_comp (dpi, options, d_left (mod));
4802 d_append_char (dpi, ')');
4808 d_print_comp (dpi, options, mod);
4816 d_print_function_type (struct d_print_info *dpi, int options,
4864 if (d_last_char (dpi) != '('
4865 && d_last_char (dpi) != '*')
4868 if (need_space && d_last_char (dpi) != ' ')
4869 d_append_char (dpi, ' ');
4870 d_append_char (dpi, '(');
4873 hold_modifiers = dpi->modifiers;
4874 dpi->modifiers = NULL;
4876 d_print_mod_list (dpi, options, mods, 0);
4879 d_append_char (dpi, ')');
4881 d_append_char (dpi, '(');
4884 d_print_comp (dpi, options, d_right (dc));
4886 d_append_char (dpi, ')');
4888 d_print_mod_list (dpi, options, mods, 1);
4890 dpi->modifiers = hold_modifiers;
4896 d_print_array_type (struct d_print_info *dpi, int options,
4928 d_append_string (dpi, " (");
4930 d_print_mod_list (dpi, options, mods, 0);
4933 d_append_char (dpi, ')');
4937 d_append_char (dpi, ' ');
4939 d_append_char (dpi, '[');
4942 d_print_comp (dpi, options, d_left (dc));
4944 d_append_char (dpi, ']');
4950 d_print_expr_op (struct d_print_info *dpi, int options,
4954 d_append_buffer (dpi, dc->u.s_operator.op->name,
4957 d_print_comp (dpi, options, dc);
4963 d_print_cast (struct d_print_info *dpi, int options,
4967 d_print_comp (dpi, options, d_left (dc));
4978 hold_dpm = dpi->modifiers;
4979 dpi->modifiers = NULL;
4981 dpt.next = dpi->templates;
4982 dpi->templates = &dpt;
4985 d_print_comp (dpi, options, d_left (d_left (dc)));
4987 dpi->templates = dpt.next;
4989 if (d_last_char (dpi) == '<')
4990 d_append_char (dpi, ' ');
4991 d_append_char (dpi, '<');
4992 d_print_comp (dpi, options, d_right (d_left (dc)));
4995 if (d_last_char (dpi) == '>')
4996 d_append_char (dpi, ' ');
4997 d_append_char (dpi, '>');
4999 dpi->modifiers = hold_dpm;