Lines Matching refs:dpi

3296 d_print_init (struct d_print_info *dpi, int options,
3299 dpi->options = options;
3300 dpi->len = 0;
3301 dpi->last_char = '\0';
3302 dpi->templates = NULL;
3303 dpi->modifiers = NULL;
3304 dpi->flush_count = 0;
3306 dpi->callback = callback;
3307 dpi->opaque = opaque;
3309 dpi->demangle_failure = 0;
3315 d_print_error (struct d_print_info *dpi)
3317 dpi->demangle_failure = 1;
3321 d_print_saw_error (struct d_print_info *dpi)
3323 return dpi->demangle_failure != 0;
3329 d_print_flush (struct d_print_info *dpi)
3331 dpi->buf[dpi->len] = '\0';
3332 dpi->callback (dpi->buf, dpi->len, dpi->opaque);
3333 dpi->len = 0;
3334 dpi->flush_count++;
3340 d_append_char (struct d_print_info *dpi, char c)
3342 if (dpi->len == sizeof (dpi->buf) - 1)
3343 d_print_flush (dpi);
3345 dpi->buf[dpi->len++] = c;
3346 dpi->last_char = c;
3350 d_append_buffer (struct d_print_info *dpi, const char *s, size_t l)
3355 d_append_char (dpi, s[i]);
3359 d_append_string (struct d_print_info *dpi, const char *s)
3361 d_append_buffer (dpi, s, strlen (s));
3365 d_append_num (struct d_print_info *dpi, long l)
3369 d_append_string (dpi, buf);
3373 d_last_char (struct d_print_info *dpi)
3375 return dpi->last_char;
3393 struct d_print_info dpi;
3395 d_print_init (&dpi, options, callback, opaque);
3397 d_print_comp (&dpi, dc);
3399 d_print_flush (&dpi);
3401 return ! d_print_saw_error (&dpi);
3462 d_lookup_template_argument (struct d_print_info *dpi,
3465 if (dpi->templates == NULL)
3467 d_print_error (dpi);
3472 (d_right (dpi->templates->template_decl),
3479 d_find_pack (struct d_print_info *dpi,
3489 a = d_lookup_template_argument (dpi, dc);
3507 return d_find_pack (dpi, dc->u.s_extended_operator.name);
3509 return d_find_pack (dpi, dc->u.s_ctor.name);
3511 return d_find_pack (dpi, dc->u.s_dtor.name);
3514 a = d_find_pack (dpi, d_left (dc));
3517 return d_find_pack (dpi, d_right (dc));
3540 d_print_subexpr (struct d_print_info *dpi,
3548 d_append_char (dpi, '(');
3549 d_print_comp (dpi, dc);
3551 d_append_char (dpi, ')');
3557 d_print_comp (struct d_print_info *dpi,
3562 d_print_error (dpi);
3565 if (d_print_saw_error (dpi))
3571 if ((dpi->options & DMGL_JAVA) == 0)
3572 d_append_buffer (dpi, dc->u.s_name.s, dc->u.s_name.len);
3574 d_print_java_identifier (dpi, dc->u.s_name.s, dc->u.s_name.len);
3579 d_print_comp (dpi, d_left (dc));
3580 if ((dpi->options & DMGL_JAVA) == 0)
3581 d_append_string (dpi, "::");
3583 d_append_char (dpi, '.');
3584 d_print_comp (dpi, d_right (dc));
3598 hold_modifiers = dpi->modifiers;
3599 dpi->modifiers = 0;
3606 d_print_error (dpi);
3610 adpm[i].next = dpi->modifiers;
3611 dpi->modifiers = &adpm[i];
3614 adpm[i].templates = dpi->templates;
3627 d_print_error (dpi);
3635 dpt.next = dpi->templates;
3636 dpi->templates = &dpt;
3657 d_print_error (dpi);
3663 dpi->modifiers = &adpm[i];
3667 adpm[i - 1].templates = dpi->templates;
3674 d_print_comp (dpi, d_right (dc));
3677 dpi->templates = dpt.next;
3686 d_append_char (dpi, ' ');
3687 d_print_mod (dpi, adpm[i].mod);
3691 dpi->modifiers = hold_modifiers;
3705 hold_dpm = dpi->modifiers;
3706 dpi->modifiers = NULL;
3710 if ((dpi->options & DMGL_JAVA) != 0
3718 d_print_comp (dpi, d_right (dc));
3719 d_append_string (dpi, "[]");
3723 d_print_comp (dpi, dcl);
3724 if (d_last_char (dpi) == '<')
3725 d_append_char (dpi, ' ');
3726 d_append_char (dpi, '<');
3727 d_print_comp (dpi, d_right (dc));
3730 if (d_last_char (dpi) == '>')
3731 d_append_char (dpi, ' ');
3732 d_append_char (dpi, '>');
3735 dpi->modifiers = hold_dpm;
3743 struct demangle_component *a = d_lookup_template_argument (dpi, dc);
3746 a = d_index_template_argument (a, dpi->pack_index);
3750 d_print_error (dpi);
3759 hold_dpt = dpi->templates;
3760 dpi->templates = hold_dpt->next;
3762 d_print_comp (dpi, a);
3764 dpi->templates = hold_dpt;
3770 d_print_comp (dpi, dc->u.s_ctor.name);
3774 d_append_char (dpi, '~');
3775 d_print_comp (dpi, dc->u.s_dtor.name);
3779 d_append_string (dpi, "vtable for ");
3780 d_print_comp (dpi, d_left (dc));
3784 d_append_string (dpi, "VTT for ");
3785 d_print_comp (dpi, d_left (dc));
3789 d_append_string (dpi, "construction vtable for ");
3790 d_print_comp (dpi, d_left (dc));
3791 d_append_string (dpi, "-in-");
3792 d_print_comp (dpi, d_right (dc));
3796 d_append_string (dpi, "typeinfo for ");
3797 d_print_comp (dpi, d_left (dc));
3801 d_append_string (dpi, "typeinfo name for ");
3802 d_print_comp (dpi, d_left (dc));
3806 d_append_string (dpi, "typeinfo fn for ");
3807 d_print_comp (dpi, d_left (dc));
3811 d_append_string (dpi, "non-virtual thunk to ");
3812 d_print_comp (dpi, d_left (dc));
3816 d_append_string (dpi, "virtual thunk to ");
3817 d_print_comp (dpi, d_left (dc));
3821 d_append_string (dpi, "covariant return thunk to ");
3822 d_print_comp (dpi, d_left (dc));
3826 d_append_string (dpi, "java Class for ");
3827 d_print_comp (dpi, d_left (dc));
3831 d_append_string (dpi, "guard variable for ");
3832 d_print_comp (dpi, d_left (dc));
3836 d_append_string (dpi, "reference temporary for ");
3837 d_print_comp (dpi, d_left (dc));
3841 d_append_string (dpi, "hidden alias for ");
3842 d_print_comp (dpi, d_left (dc));
3846 d_append_buffer (dpi, dc->u.s_string.string, dc->u.s_string.len);
3859 for (pdpm = dpi->modifiers; pdpm != NULL; pdpm = pdpm->next)
3869 d_print_comp (dpi, d_left (dc));
3889 dpm.next = dpi->modifiers;
3890 dpi->modifiers = &dpm;
3893 dpm.templates = dpi->templates;
3895 d_print_comp (dpi, d_left (dc));
3900 d_print_mod (dpi, dc);
3902 dpi->modifiers = dpm.next;
3908 if ((dpi->options & DMGL_JAVA) == 0)
3909 d_append_buffer (dpi, dc->u.s_builtin.type->name,
3912 d_append_buffer (dpi, dc->u.s_builtin.type->java_name,
3917 d_print_comp (dpi, d_left (dc));
3922 if ((dpi->options & DMGL_RET_POSTFIX) != 0)
3923 d_print_function_type (dpi, dc, dpi->modifiers);
3932 dpm.next = dpi->modifiers;
3933 dpi->modifiers = &dpm;
3936 dpm.templates = dpi->templates;
3938 d_print_comp (dpi, d_left (dc));
3940 dpi->modifiers = dpm.next;
3947 if ((dpi->options & DMGL_RET_POSTFIX) == 0)
3948 d_append_char (dpi, ' ');
3951 if ((dpi->options & DMGL_RET_POSTFIX) == 0)
3952 d_print_function_type (dpi, dc, dpi->modifiers);
3972 hold_modifiers = dpi->modifiers;
3975 dpi->modifiers = &adpm[0];
3978 adpm[0].templates = dpi->templates;
3991 d_print_error (dpi);
3996 adpm[i].next = dpi->modifiers;
3997 dpi->modifiers = &adpm[i];
4005 d_print_comp (dpi, d_right (dc));
4007 dpi->modifiers = hold_modifiers;
4015 d_print_mod (dpi, adpm[i].mod);
4018 d_print_array_type (dpi, dc, dpi->modifiers);
4028 dpm.next = dpi->modifiers;
4029 dpi->modifiers = &dpm;
4032 dpm.templates = dpi->templates;
4034 d_print_comp (dpi, d_right (dc));
4039 d_print_mod (dpi, dc);
4041 dpi->modifiers = dpm.next;
4048 d_append_string (dpi, "_Sat ");
4053 d_print_comp (dpi, dc->u.s_fixed.length);
4054 d_append_char (dpi, ' ');
4057 d_append_string (dpi, "_Accum");
4059 d_append_string (dpi, "_Fract");
4065 d_print_comp (dpi, d_left (dc));
4071 dpi->len -= 2 wouldn't work. */
4072 if (dpi->len >= sizeof (dpi->buf) - 2)
4073 d_print_flush (dpi);
4074 d_append_string (dpi, ", ");
4075 len = dpi->len;
4076 flush_count = dpi->flush_count;
4077 d_print_comp (dpi, d_right (dc));
4080 if (dpi->flush_count == flush_count && dpi->len == len)
4081 dpi->len -= 2;
4089 d_append_string (dpi, "operator");
4092 d_append_char (dpi, ' ');
4093 d_append_buffer (dpi, dc->u.s_operator.op->name,
4099 d_append_string (dpi, "operator ");
4100 d_print_comp (dpi, dc->u.s_extended_operator.name);
4104 d_append_string (dpi, "operator ");
4105 d_print_cast (dpi, dc);
4110 d_print_expr_op (dpi, d_left (dc));
4113 d_append_char (dpi, '(');
4114 d_print_cast (dpi, d_left (dc));
4115 d_append_char (dpi, ')');
4117 d_print_subexpr (dpi, d_right (dc));
4123 d_print_error (dpi);
4133 d_append_char (dpi, '(');
4135 d_print_subexpr (dpi, d_left (d_right (dc)));
4138 d_append_char (dpi, '[');
4139 d_print_comp (dpi, d_right (d_right (dc)));
4140 d_append_char (dpi, ']');
4145 d_print_expr_op (dpi, d_left (dc));
4146 d_print_subexpr (dpi, d_right (d_right (dc)));
4152 d_append_char (dpi, ')');
4158 d_print_error (dpi);
4165 d_print_error (dpi);
4168 d_print_subexpr (dpi, d_left (d_right (dc)));
4169 d_print_expr_op (dpi, d_left (dc));
4170 d_print_subexpr (dpi, d_left (d_right (d_right (dc))));
4171 d_append_string (dpi, " : ");
4172 d_print_subexpr (dpi, d_right (d_right (d_right (dc))));
4178 d_print_error (dpi);
4202 d_append_char (dpi, '-');
4203 d_print_comp (dpi, d_right (dc));
4209 d_append_char (dpi, 'u');
4212 d_append_char (dpi, 'l');
4215 d_append_string (dpi, "ul");
4218 d_append_string (dpi, "ll");
4221 d_append_string (dpi, "ull");
4236 d_append_string (dpi, "false");
4239 d_append_string (dpi, "true");
4252 d_append_char (dpi, '(');
4253 d_print_comp (dpi, d_left (dc));
4254 d_append_char (dpi, ')');
4256 d_append_char (dpi, '-');
4258 d_append_char (dpi, '[');
4259 d_print_comp (dpi, d_right (dc));
4261 d_append_char (dpi, ']');
4266 d_append_num (dpi, dc->u.s_number.number);
4270 d_append_string (dpi, "java resource ");
4271 d_print_comp (dpi, d_left (dc));
4275 d_print_comp (dpi, d_left (dc));
4276 d_print_comp (dpi, d_right (dc));
4280 d_append_char (dpi, dc->u.s_character.character);
4284 d_append_string (dpi, "decltype (");
4285 d_print_comp (dpi, d_left (dc));
4286 d_append_char (dpi, ')');
4293 struct demangle_component *a = d_find_pack (dpi, d_left (dc));
4299 d_print_subexpr (dpi, d_left (dc));
4300 d_append_string (dpi, "...");
4308 dpi->pack_index = i;
4309 d_print_comp (dpi, dc);
4311 d_append_string (dpi, ", ");
4317 d_append_string (dpi, "{parm#");
4318 d_append_num (dpi, dc->u.s_number.number + 1);
4319 d_append_char (dpi, '}');
4323 d_append_string (dpi, "global constructors keyed to ");
4324 d_print_comp (dpi, dc->u.s_binary.left);
4328 d_append_string (dpi, "global destructors keyed to ");
4329 d_print_comp (dpi, dc->u.s_binary.left);
4333 d_append_string (dpi, "{lambda(");
4334 d_print_comp (dpi, dc->u.s_unary_num.sub);
4335 d_append_string (dpi, ")#");
4336 d_append_num (dpi, dc->u.s_unary_num.num + 1);
4337 d_append_char (dpi, '}');
4341 d_append_string (dpi, "{unnamed type#");
4342 d_append_num (dpi, dc->u.s_number.number + 1);
4343 d_append_char (dpi, '}');
4347 d_print_error (dpi);
4358 d_print_java_identifier (struct d_print_info *dpi, const char *name, int len)
4394 d_append_char (dpi, c);
4400 d_append_char (dpi, *p);
4408 d_print_mod_list (struct d_print_info *dpi,
4413 if (mods == NULL || d_print_saw_error (dpi))
4422 d_print_mod_list (dpi, mods->next, suffix);
4428 hold_dpt = dpi->templates;
4429 dpi->templates = mods->templates;
4433 d_print_function_type (dpi, mods->mod, mods->next);
4434 dpi->templates = hold_dpt;
4439 d_print_array_type (dpi, mods->mod, mods->next);
4440 dpi->templates = hold_dpt;
4453 hold_modifiers = dpi->modifiers;
4454 dpi->modifiers = NULL;
4455 d_print_comp (dpi, d_left (mods->mod));
4456 dpi->modifiers = hold_modifiers;
4458 if ((dpi->options & DMGL_JAVA) == 0)
4459 d_append_string (dpi, "::");
4461 d_append_char (dpi, '.');
4467 d_append_string (dpi, "{default arg#");
4468 d_append_num (dpi, dc->u.s_unary_num.num + 1);
4469 d_append_string (dpi, "}::");
4478 d_print_comp (dpi, dc);
4480 dpi->templates = hold_dpt;
4484 d_print_mod (dpi, mods->mod);
4486 dpi->templates = hold_dpt;
4488 d_print_mod_list (dpi, mods->next, suffix);
4494 d_print_mod (struct d_print_info *dpi,
4501 d_append_string (dpi, " restrict");
4505 d_append_string (dpi, " volatile");
4509 d_append_string (dpi, " const");
4512 d_append_char (dpi, ' ');
4513 d_print_comp (dpi, d_right (mod));
4517 if ((dpi->options & DMGL_JAVA) == 0)
4518 d_append_char (dpi, '*');
4521 d_append_char (dpi, '&');
4524 d_append_string (dpi, "&&");
4527 d_append_string (dpi, "complex ");
4530 d_append_string (dpi, "imaginary ");
4533 if (d_last_char (dpi) != '(')
4534 d_append_char (dpi, ' ');
4535 d_print_comp (dpi, d_left (mod));
4536 d_append_string (dpi, "::*");
4539 d_print_comp (dpi, d_left (mod));
4542 d_append_string (dpi, " __vector(");
4543 d_print_comp (dpi, d_left (mod));
4544 d_append_char (dpi, ')');
4550 d_print_comp (dpi, mod);
4558 d_print_function_type (struct d_print_info *dpi,
4606 if (d_last_char (dpi) != '('
4607 && d_last_char (dpi) != '*')
4610 if (need_space && d_last_char (dpi) != ' ')
4611 d_append_char (dpi, ' ');
4612 d_append_char (dpi, '(');
4615 hold_modifiers = dpi->modifiers;
4616 dpi->modifiers = NULL;
4618 d_print_mod_list (dpi, mods, 0);
4621 d_append_char (dpi, ')');
4623 d_append_char (dpi, '(');
4626 d_print_comp (dpi, d_right (dc));
4628 d_append_char (dpi, ')');
4630 d_print_mod_list (dpi, mods, 1);
4632 dpi->modifiers = hold_modifiers;
4638 d_print_array_type (struct d_print_info *dpi,
4670 d_append_string (dpi, " (");
4672 d_print_mod_list (dpi, mods, 0);
4675 d_append_char (dpi, ')');
4679 d_append_char (dpi, ' ');
4681 d_append_char (dpi, '[');
4684 d_print_comp (dpi, d_left (dc));
4686 d_append_char (dpi, ']');
4692 d_print_expr_op (struct d_print_info *dpi,
4696 d_append_buffer (dpi, dc->u.s_operator.op->name,
4699 d_print_comp (dpi, dc);
4705 d_print_cast (struct d_print_info *dpi,
4709 d_print_comp (dpi, d_left (dc));
4720 hold_dpm = dpi->modifiers;
4721 dpi->modifiers = NULL;
4723 dpt.next = dpi->templates;
4724 dpi->templates = &dpt;
4727 d_print_comp (dpi, d_left (d_left (dc)));
4729 dpi->templates = dpt.next;
4731 if (d_last_char (dpi) == '<')
4732 d_append_char (dpi, ' ');
4733 d_append_char (dpi, '<');
4734 d_print_comp (dpi, d_right (d_left (dc)));
4737 if (d_last_char (dpi) == '>')
4738 d_append_char (dpi, ' ');
4739 d_append_char (dpi, '>');
4741 dpi->modifiers = hold_dpm;