Lines Matching refs:dpi

2717 d_print_init (struct d_print_info *dpi, int options,
2720 dpi->options = options;
2721 dpi->len = 0;
2722 dpi->last_char = '\0';
2723 dpi->templates = NULL;
2724 dpi->modifiers = NULL;
2726 dpi->callback = callback;
2727 dpi->opaque = opaque;
2729 dpi->demangle_failure = 0;
2735 d_print_error (struct d_print_info *dpi)
2737 dpi->demangle_failure = 1;
2741 d_print_saw_error (struct d_print_info *dpi)
2743 return dpi->demangle_failure != 0;
2749 d_print_flush (struct d_print_info *dpi)
2751 dpi->buf[dpi->len] = '\0';
2752 dpi->callback (dpi->buf, dpi->len, dpi->opaque);
2753 dpi->len = 0;
2759 d_append_char (struct d_print_info *dpi, char c)
2761 if (dpi->len == sizeof (dpi->buf) - 1)
2762 d_print_flush (dpi);
2764 dpi->buf[dpi->len++] = c;
2765 dpi->last_char = c;
2769 d_append_buffer (struct d_print_info *dpi, const char *s, size_t l)
2774 d_append_char (dpi, s[i]);
2778 d_append_string (struct d_print_info *dpi, const char *s)
2780 d_append_buffer (dpi, s, strlen (s));
2784 d_last_char (struct d_print_info *dpi)
2786 return dpi->last_char;
2804 struct d_print_info dpi;
2806 d_print_init (&dpi, options, callback, opaque);
2808 d_print_comp (&dpi, dc);
2810 d_print_flush (&dpi);
2812 return ! d_print_saw_error (&dpi);
2848 d_print_comp (struct d_print_info *dpi,
2853 d_print_error (dpi);
2856 if (d_print_saw_error (dpi))
2862 if ((dpi->options & DMGL_JAVA) == 0)
2863 d_append_buffer (dpi, dc->u.s_name.s, dc->u.s_name.len);
2865 d_print_java_identifier (dpi, dc->u.s_name.s, dc->u.s_name.len);
2870 d_print_comp (dpi, d_left (dc));
2871 if ((dpi->options & DMGL_JAVA) == 0)
2872 d_append_string (dpi, "::");
2874 d_append_char (dpi, '.');
2875 d_print_comp (dpi, d_right (dc));
2889 hold_modifiers = dpi->modifiers;
2896 d_print_error (dpi);
2900 adpm[i].next = dpi->modifiers;
2901 dpi->modifiers = &adpm[i];
2904 adpm[i].templates = dpi->templates;
2919 dpt.next = dpi->templates;
2920 dpi->templates = &dpt;
2939 d_print_error (dpi);
2945 dpi->modifiers = &adpm[i];
2949 adpm[i - 1].templates = dpi->templates;
2956 d_print_comp (dpi, d_right (dc));
2959 dpi->templates = dpt.next;
2968 d_append_char (dpi, ' ');
2969 d_print_mod (dpi, adpm[i].mod);
2973 dpi->modifiers = hold_modifiers;
2987 hold_dpm = dpi->modifiers;
2988 dpi->modifiers = NULL;
2992 if ((dpi->options & DMGL_JAVA) != 0
3000 d_print_comp (dpi, d_right (dc));
3001 d_append_string (dpi, "[]");
3005 d_print_comp (dpi, dcl);
3006 if (d_last_char (dpi) == '<')
3007 d_append_char (dpi, ' ');
3008 d_append_char (dpi, '<');
3009 d_print_comp (dpi, d_right (dc));
3012 if (d_last_char (dpi) == '>')
3013 d_append_char (dpi, ' ');
3014 d_append_char (dpi, '>');
3017 dpi->modifiers = hold_dpm;
3028 if (dpi->templates == NULL)
3030 d_print_error (dpi);
3034 for (a = d_right (dpi->templates->template_decl);
3040 d_print_error (dpi);
3049 d_print_error (dpi);
3058 hold_dpt = dpi->templates;
3059 dpi->templates = hold_dpt->next;
3061 d_print_comp (dpi, d_left (a));
3063 dpi->templates = hold_dpt;
3069 d_print_comp (dpi, dc->u.s_ctor.name);
3073 d_append_char (dpi, '~');
3074 d_print_comp (dpi, dc->u.s_dtor.name);
3078 d_append_string (dpi, "vtable for ");
3079 d_print_comp (dpi, d_left (dc));
3083 d_append_string (dpi, "VTT for ");
3084 d_print_comp (dpi, d_left (dc));
3088 d_append_string (dpi, "construction vtable for ");
3089 d_print_comp (dpi, d_left (dc));
3090 d_append_string (dpi, "-in-");
3091 d_print_comp (dpi, d_right (dc));
3095 d_append_string (dpi, "typeinfo for ");
3096 d_print_comp (dpi, d_left (dc));
3100 d_append_string (dpi, "typeinfo name for ");
3101 d_print_comp (dpi, d_left (dc));
3105 d_append_string (dpi, "typeinfo fn for ");
3106 d_print_comp (dpi, d_left (dc));
3110 d_append_string (dpi, "non-virtual thunk to ");
3111 d_print_comp (dpi, d_left (dc));
3115 d_append_string (dpi, "virtual thunk to ");
3116 d_print_comp (dpi, d_left (dc));
3120 d_append_string (dpi, "covariant return thunk to ");
3121 d_print_comp (dpi, d_left (dc));
3125 d_append_string (dpi, "java Class for ");
3126 d_print_comp (dpi, d_left (dc));
3130 d_append_string (dpi, "guard variable for ");
3131 d_print_comp (dpi, d_left (dc));
3135 d_append_string (dpi, "reference temporary for ");
3136 d_print_comp (dpi, d_left (dc));
3140 d_append_string (dpi, "hidden alias for ");
3141 d_print_comp (dpi, d_left (dc));
3145 d_append_buffer (dpi, dc->u.s_string.string, dc->u.s_string.len);
3158 for (pdpm = dpi->modifiers; pdpm != NULL; pdpm = pdpm->next)
3168 d_print_comp (dpi, d_left (dc));
3187 dpm.next = dpi->modifiers;
3188 dpi->modifiers = &dpm;
3191 dpm.templates = dpi->templates;
3193 d_print_comp (dpi, d_left (dc));
3198 d_print_mod (dpi, dc);
3200 dpi->modifiers = dpm.next;
3206 if ((dpi->options & DMGL_JAVA) == 0)
3207 d_append_buffer (dpi, dc->u.s_builtin.type->name,
3210 d_append_buffer (dpi, dc->u.s_builtin.type->java_name,
3215 d_print_comp (dpi, d_left (dc));
3220 if ((dpi->options & DMGL_RET_POSTFIX) != 0)
3221 d_print_function_type (dpi, dc, dpi->modifiers);
3230 dpm.next = dpi->modifiers;
3231 dpi->modifiers = &dpm;
3234 dpm.templates = dpi->templates;
3236 d_print_comp (dpi, d_left (dc));
3238 dpi->modifiers = dpm.next;
3245 if ((dpi->options & DMGL_RET_POSTFIX) == 0)
3246 d_append_char (dpi, ' ');
3249 if ((dpi->options & DMGL_RET_POSTFIX) == 0)
3250 d_print_function_type (dpi, dc, dpi->modifiers);
3270 hold_modifiers = dpi->modifiers;
3273 dpi->modifiers = &adpm[0];
3276 adpm[0].templates = dpi->templates;
3289 d_print_error (dpi);
3294 adpm[i].next = dpi->modifiers;
3295 dpi->modifiers = &adpm[i];
3303 d_print_comp (dpi, d_right (dc));
3305 dpi->modifiers = hold_modifiers;
3313 d_print_mod (dpi, adpm[i].mod);
3316 d_print_array_type (dpi, dc, dpi->modifiers);
3325 dpm.next = dpi->modifiers;
3326 dpi->modifiers = &dpm;
3329 dpm.templates = dpi->templates;
3331 d_print_comp (dpi, d_right (dc));
3337 d_append_char (dpi, ' ');
3338 d_print_comp (dpi, d_left (dc));
3339 d_append_string (dpi, "::*");
3342 dpi->modifiers = dpm.next;
3349 d_print_comp (dpi, d_left (dc));
3352 d_append_string (dpi, ", ");
3353 d_print_comp (dpi, d_right (dc));
3361 d_append_string (dpi, "operator");
3364 d_append_char (dpi, ' ');
3365 d_append_buffer (dpi, dc->u.s_operator.op->name,
3371 d_append_string (dpi, "operator ");
3372 d_print_comp (dpi, dc->u.s_extended_operator.name);
3376 d_append_string (dpi, "operator ");
3377 d_print_cast (dpi, dc);
3382 d_print_expr_op (dpi, d_left (dc));
3385 d_append_char (dpi, '(');
3386 d_print_cast (dpi, d_left (dc));
3387 d_append_char (dpi, ')');
3389 d_append_char (dpi, '(');
3390 d_print_comp (dpi, d_right (dc));
3391 d_append_char (dpi, ')');
3397 d_print_error (dpi);
3407 d_append_char (dpi, '(');
3409 d_append_char (dpi, '(');
3410 d_print_comp (dpi, d_left (d_right (dc)));
3411 d_append_string (dpi, ") ");
3412 d_print_expr_op (dpi, d_left (dc));
3413 d_append_string (dpi, " (");
3414 d_print_comp (dpi, d_right (d_right (dc)));
3415 d_append_char (dpi, ')');
3420 d_append_char (dpi, ')');
3426 d_print_error (dpi);
3433 d_print_error (dpi);
3436 d_append_char (dpi, '(');
3437 d_print_comp (dpi, d_left (d_right (dc)));
3438 d_append_string (dpi, ") ");
3439 d_print_expr_op (dpi, d_left (dc));
3440 d_append_string (dpi, " (");
3441 d_print_comp (dpi, d_left (d_right (d_right (dc))));
3442 d_append_string (dpi, ") : (");
3443 d_print_comp (dpi, d_right (d_right (d_right (dc))));
3444 d_append_char (dpi, ')');
3450 d_print_error (dpi);
3474 d_append_char (dpi, '-');
3475 d_print_comp (dpi, d_right (dc));
3481 d_append_char (dpi, 'u');
3484 d_append_char (dpi, 'l');
3487 d_append_string (dpi, "ul");
3490 d_append_string (dpi, "ll");
3493 d_append_string (dpi, "ull");
3508 d_append_string (dpi, "false");
3511 d_append_string (dpi, "true");
3524 d_append_char (dpi, '(');
3525 d_print_comp (dpi, d_left (dc));
3526 d_append_char (dpi, ')');
3528 d_append_char (dpi, '-');
3530 d_append_char (dpi, '[');
3531 d_print_comp (dpi, d_right (dc));
3533 d_append_char (dpi, ']');
3538 d_print_error (dpi);
3549 d_print_java_identifier (struct d_print_info *dpi, const char *name, int len)
3585 d_append_char (dpi, c);
3591 d_append_char (dpi, *p);
3599 d_print_mod_list (struct d_print_info *dpi,
3604 if (mods == NULL || d_print_saw_error (dpi))
3613 d_print_mod_list (dpi, mods->next, suffix);
3619 hold_dpt = dpi->templates;
3620 dpi->templates = mods->templates;
3624 d_print_function_type (dpi, mods->mod, mods->next);
3625 dpi->templates = hold_dpt;
3630 d_print_array_type (dpi, mods->mod, mods->next);
3631 dpi->templates = hold_dpt;
3644 hold_modifiers = dpi->modifiers;
3645 dpi->modifiers = NULL;
3646 d_print_comp (dpi, d_left (mods->mod));
3647 dpi->modifiers = hold_modifiers;
3649 if ((dpi->options & DMGL_JAVA) == 0)
3650 d_append_string (dpi, "::");
3652 d_append_char (dpi, '.');
3660 d_print_comp (dpi, dc);
3662 dpi->templates = hold_dpt;
3666 d_print_mod (dpi, mods->mod);
3668 dpi->templates = hold_dpt;
3670 d_print_mod_list (dpi, mods->next, suffix);
3676 d_print_mod (struct d_print_info *dpi,
3683 d_append_string (dpi, " restrict");
3687 d_append_string (dpi, " volatile");
3691 d_append_string (dpi, " const");
3694 d_append_char (dpi, ' ');
3695 d_print_comp (dpi, d_right (mod));
3699 if ((dpi->options & DMGL_JAVA) == 0)
3700 d_append_char (dpi, '*');
3703 d_append_char (dpi, '&');
3706 d_append_string (dpi, "complex ");
3709 d_append_string (dpi, "imaginary ");
3712 if (d_last_char (dpi) != '(')
3713 d_append_char (dpi, ' ');
3714 d_print_comp (dpi, d_left (mod));
3715 d_append_string (dpi, "::*");
3718 d_print_comp (dpi, d_left (mod));
3723 d_print_comp (dpi, mod);
3731 d_print_function_type (struct d_print_info *dpi,
3784 if (d_last_char (dpi) != '('
3785 && d_last_char (dpi) != '*')
3788 if (need_space && d_last_char (dpi) != ' ')
3789 d_append_char (dpi, ' ');
3790 d_append_char (dpi, '(');
3793 hold_modifiers = dpi->modifiers;
3794 dpi->modifiers = NULL;
3796 d_print_mod_list (dpi, mods, 0);
3799 d_append_char (dpi, ')');
3801 d_append_char (dpi, '(');
3804 d_print_comp (dpi, d_right (dc));
3806 d_append_char (dpi, ')');
3808 d_print_mod_list (dpi, mods, 1);
3810 dpi->modifiers = hold_modifiers;
3816 d_print_array_type (struct d_print_info *dpi,
3848 d_append_string (dpi, " (");
3850 d_print_mod_list (dpi, mods, 0);
3853 d_append_char (dpi, ')');
3857 d_append_char (dpi, ' ');
3859 d_append_char (dpi, '[');
3862 d_print_comp (dpi, d_left (dc));
3864 d_append_char (dpi, ']');
3870 d_print_expr_op (struct d_print_info *dpi,
3874 d_append_buffer (dpi, dc->u.s_operator.op->name,
3877 d_print_comp (dpi, dc);
3883 d_print_cast (struct d_print_info *dpi,
3887 d_print_comp (dpi, d_left (dc));
3898 hold_dpm = dpi->modifiers;
3899 dpi->modifiers = NULL;
3901 dpt.next = dpi->templates;
3902 dpi->templates = &dpt;
3905 d_print_comp (dpi, d_left (d_left (dc)));
3907 dpi->templates = dpt.next;
3909 if (d_last_char (dpi) == '<')
3910 d_append_char (dpi, ' ');
3911 d_append_char (dpi, '<');
3912 d_print_comp (dpi, d_right (d_left (dc)));
3915 if (d_last_char (dpi) == '>')
3916 d_append_char (dpi, ' ');
3917 d_append_char (dpi, '>');
3919 dpi->modifiers = hold_dpm;