Home | History | Annotate | Download | only in gcc-demangle

Lines Matching refs:dc

236 #define d_left(dc) ((dc)->u.s_binary.left)
237 #define d_right(dc) ((dc)->u.s_binary.right)
491 d_dump (struct demangle_component *dc, int indent)
495 if (dc == NULL)
505 switch (dc->type)
508 printf ("name '%.*s'\n", dc->u.s_name.len, dc->u.s_name.s);
511 printf ("template parameter %ld\n", dc->u.s_number.number);
514 printf ("constructor %d\n", (int) dc->u.s_ctor.kind);
515 d_dump (dc->u.s_ctor.name, indent + 2);
518 printf ("destructor %d\n", (int) dc->u.s_dtor.kind);
519 d_dump (dc->u.s_dtor.name, indent + 2);
522 printf ("standard substitution %s\n", dc->u.s_string.string);
525 printf ("builtin type %s\n", dc->u.s_builtin.type->name);
528 printf ("operator %s\n", dc->u.s_operator.op->name);
532 dc->u.s_extended_operator.args);
533 d_dump (dc->u.s_extended_operator.name, indent + 2);
678 printf ("character '%c'\n", dc->u.s_character.character);
688 d_dump (d_left (dc), indent + 2);
689 d_dump (d_right (dc), indent + 2);
1068 has_return_type (struct demangle_component *dc)
1070 if (dc == NULL)
1072 switch (dc->type)
1077 return ! is_ctor_dtor_or_conversion (d_left (dc));
1081 return has_return_type (d_left (dc));
1089 is_ctor_dtor_or_conversion (struct demangle_component *dc)
1091 if (dc == NULL)
1093 switch (dc->type)
1099 return is_ctor_dtor_or_conversion (d_right (dc));
1125 struct demangle_component *dc;
1127 dc = d_name (di);
1129 if (dc != NULL && top_level && (di->options & DMGL_PARAMS) == 0)
1134 while (dc->type == DEMANGLE_COMPONENT_RESTRICT_THIS
1135 || dc->type == DEMANGLE_COMPONENT_VOLATILE_THIS
1136 || dc->type == DEMANGLE_COMPONENT_CONST_THIS)
1137 dc = d_left (dc);
1143 if (dc->type == DEMANGLE_COMPONENT_LOCAL_NAME)
1147 dcr = d_right (dc);
1152 dc->u.s_binary.right = dcr;
1155 return dc;
1159 if (dc == NULL || peek == '\0' || peek == 'E')
1160 return dc;
1161 return d_make_comp (di, DEMANGLE_COMPONENT_TYPED_NAME, dc,
1162 d_bare_function_type (di, has_return_type (dc)));
1182 struct demangle_component *dc;
1202 dc = d_substitution (di, 0);
1208 dc = d_make_comp (di, DEMANGLE_COMPONENT_QUAL_NAME,
1229 if (! d_add_substitution (di, dc))
1232 dc = d_make_comp (di, DEMANGLE_COMPONENT_TEMPLATE, dc,
1236 return dc;
1240 dc = d_unqualified_name (di);
1246 if (! d_add_substitution (di, dc))
1248 dc = d_make_comp (di, DEMANGLE_COMPONENT_TEMPLATE, dc,
1251 return dc;
1302 struct demangle_component *dc;
1319 dc = d_unqualified_name (di);
1321 dc = d_substitution (di, 1);
1327 dc = d_template_args (di);
1330 dc = d_template_param (di);
1347 ret = dc;
1349 ret = d_make_comp (di, comb_type, ret, dc);
3072 d_add_substitution (struct d_info *di, struct demangle_component *dc)
3074 if (dc == NULL)
3078 di->subs[di->next_sub] = dc;
3379 options bits passed to the demangler. DC is the tree to print.
3390 const struct demangle_component *dc,
3397 d_print_comp (&dpi, dc);
3405 options bits passed to the demangler. DC is the tree to print.
3414 cplus_demangle_print (int options, const struct demangle_component *dc,
3421 if (! cplus_demangle_print_callback (options, dc,
3458 /* Returns the template argument from the current context indicated by DC,
3463 const struct demangle_component *dc)
3473 dc->u.s_number.number);
3476 /* Returns a template argument pack used in DC (any will do), or NULL. */
3480 const struct demangle_component *dc)
3483 if (dc == NULL)
3486 switch (dc->type)
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));
3521 /* Returns the length of the template argument pack DC. */
3524 d_pack_length (const struct demangle_component *dc)
3527 while (dc && dc->type == DEMANGLE_COMPONENT_TEMPLATE_ARGLIST
3528 && d_left (dc) != NULL)
3531 dc = d_right (dc);
3536 /* DC is a component of a mangled expression. Print it, wrapped in parens
3541 const struct demangle_component *dc)
3544 if (dc->type == DEMANGLE_COMPONENT_NAME
3545 || dc->type == DEMANGLE_COMPONENT_FUNCTION_PARAM)
3549 d_print_comp (dpi, dc);
3558 const struct demangle_component *dc)
3560 if (dc == NULL)
3568 switch (dc->type)
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));
3584 d_print_comp (dpi, d_right (dc));
3601 typed_name = d_left (dc);
3674 d_print_comp (dpi, d_right (dc));
3708 dcl = d_left (dc);
3718 d_print_comp (dpi, d_right (dc));
3727 d_print_comp (dpi, d_right (dc));
3743 struct demangle_component *a = d_lookup_template_argument (dpi, dc);
3770 d_print_comp (dpi, dc->u.s_ctor.name);
3775 d_print_comp (dpi, dc->u.s_dtor.name);
3780 d_print_comp (dpi, d_left (dc));
3785 d_print_comp (dpi, d_left (dc));
3790 d_print_comp (dpi, d_left (dc));
3792 d_print_comp (dpi, d_right (dc));
3797 d_print_comp (dpi, d_left (dc));
3802 d_print_comp (dpi, d_left (dc));
3807 d_print_comp (dpi, d_left (dc));
3812 d_print_comp (dpi, d_left (dc));
3817 d_print_comp (dpi, d_left (dc));
3822 d_print_comp (dpi, d_left (dc));
3827 d_print_comp (dpi, d_left (dc));
3832 d_print_comp (dpi, d_left (dc));
3837 d_print_comp (dpi, d_left (dc));
3842 d_print_comp (dpi, d_left (dc));
3846 d_append_buffer (dpi, dc->u.s_string.string, dc->u.s_string.len);
3867 if (pdpm->mod->type == dc->type)
3869 d_print_comp (dpi, d_left (dc));
3891 dpm.mod = dc;
3895 d_print_comp (dpi, d_left (dc));
3900 d_print_mod (dpi, dc);
3909 d_append_buffer (dpi, dc->u.s_builtin.type->name,
3910 dc->u.s_builtin.type->len);
3912 d_append_buffer (dpi, dc->u.s_builtin.type->java_name,
3913 dc->u.s_builtin.type->java_len);
3917 d_print_comp (dpi, d_left (dc));
3923 d_print_function_type (dpi, dc, dpi->modifiers);
3926 if (d_left (dc) != NULL)
3934 dpm.mod = dc;
3938 d_print_comp (dpi, d_left (dc));
3952 d_print_function_type (dpi, dc, dpi->modifiers);
3976 adpm[0].mod = dc;
4005 d_print_comp (dpi, d_right (dc));
4018 d_print_array_type (dpi, dc, dpi->modifiers);
4030 dpm.mod = dc;
4034 d_print_comp (dpi, d_right (dc));
4039 d_print_mod (dpi, dc);
4047 if (dc->u.s_fixed.sat)
4050 if (dc->u.s_fixed.length->u.s_builtin.type
4053 d_print_comp (dpi, dc->u.s_fixed.length);
4056 if (dc->u.s_fixed.accum)
4064 if (d_left (dc) != NULL)
4065 d_print_comp (dpi, d_left (dc));
4066 if (d_right (dc) != NULL)
4077 d_print_comp (dpi, d_right (dc));
4090 c = dc->u.s_operator.op->name[0];
4093 d_append_buffer (dpi, dc->u.s_operator.op->name,
4094 dc->u.s_operator.op->len);
4100 d_print_comp (dpi, dc->u.s_extended_operator.name);
4105 d_print_cast (dpi, dc);
4109 if (d_left (dc)->type != DEMANGLE_COMPONENT_CAST)
4110 d_print_expr_op (dpi, d_left (dc));
4114 d_print_cast (dpi, d_left (dc));
4117 d_print_subexpr (dpi, d_right (dc));
4121 if (d_right (dc)->type != DEMANGLE_COMPONENT_BINARY_ARGS)
4130 if (d_left (dc)->type == DEMANGLE_COMPONENT_OPERATOR
4131 && d_left (dc)->u.s_operator.op->len == 1
4132 && d_left (dc)->u.s_operator.op->name[0] == '>')
4135 d_print_subexpr (dpi, d_left (d_right (dc)));
4136 if (strcmp (d_left (dc)->u.s_operator.op->code, "ix") == 0)
4139 d_print_comp (dpi, d_right (d_right (dc)));
4144 if (strcmp (d_left (dc)->u.s_operator.op->code, "cl") != 0)
4145 d_print_expr_op (dpi, d_left (dc));
4146 d_print_subexpr (dpi, d_right (d_right (dc)));
4149 if (d_left (dc)->type == DEMANGLE_COMPONENT_OPERATOR
4150 && d_left (dc)->u.s_operator.op->len == 1
4151 && d_left (dc)->u.s_operator.op->name[0] == '>')
4162 if (d_right (dc)->type != DEMANGLE_COMPONENT_TRINARY_ARG1
4163 || d_right (d_right (dc))->type != DEMANGLE_COMPONENT_TRINARY_ARG2)
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))));
4172 d_print_subexpr (dpi, d_right (d_right (d_right (dc))));
4188 if (d_left (dc)->type == DEMANGLE_COMPONENT_BUILTIN_TYPE)
4190 tp = d_left (dc)->u.s_builtin.type->print;
4199 if (d_right (dc)->type == DEMANGLE_COMPONENT_NAME)
4201 if (dc->type == DEMANGLE_COMPONENT_LITERAL_NEG)
4203 d_print_comp (dpi, d_right (dc));
4229 if (d_right (dc)->type == DEMANGLE_COMPONENT_NAME
4230 && d_right (dc)->u.s_name.len == 1
4231 && dc->type == DEMANGLE_COMPONENT_LITERAL)
4233 switch (d_right (dc)->u.s_name.s[0])
4253 d_print_comp (dpi, d_left (dc));
4255 if (dc->type == DEMANGLE_COMPONENT_LITERAL_NEG)
4259 d_print_comp (dpi, d_right (dc));
4266 d_append_num (dpi, dc->u.s_number.number);
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);
4285 d_print_comp (dpi, d_left (dc));
4293 struct demangle_component *a = d_find_pack (dpi, d_left (dc));
4299 d_print_subexpr (dpi, d_left (dc));
4305 dc = d_left (dc);
4309 d_print_comp (dpi, dc);
4318 d_append_num (dpi, dc->u.s_number.number + 1);
4324 d_print_comp (dpi, dc->u.s_binary.left);
4329 d_print_comp (dpi, dc->u.s_binary.left);
4334 d_print_comp (dpi, dc->u.s_unary_num.sub);
4336 d_append_num (dpi, dc->u.s_unary_num.num + 1);
4342 d_append_num (dpi, dc->u.s_number.number + 1);
4446 struct demangle_component *dc;
4463 dc = d_right (mods->mod);
4465 if (dc->type == DEMANGLE_COMPONENT_DEFAULT_ARG)
4468 d_append_num (dpi, dc->u.s_unary_num.num + 1);
4470 dc = dc->u.s_unary_num.sub;
4473 while (dc->type == DEMANGLE_COMPONENT_RESTRICT_THIS
4474 || dc->type == DEMANGLE_COMPONENT_VOLATILE_THIS
4475 || dc->type == DEMANGLE_COMPONENT_CONST_THIS)
4476 dc = d_left (dc);
4478 d_print_comp (dpi, dc);
4559 const struct demangle_component *dc,
4625 if (d_right (dc) != NULL)
4626 d_print_comp (dpi, d_right (dc));
4639 const struct demangle_component *dc,
4683 if (d_left (dc) != NULL)
4684 d_print_comp (dpi, d_left (dc));
4693 const struct demangle_component *dc)
4695 if (dc->type == DEMANGLE_COMPONENT_OPERATOR)
4696 d_append_buffer (dpi, dc->u.s_operator.op->name,
4697 dc->u.s_operator.op->len);
4699 d_print_comp (dpi, dc);
4706 const struct demangle_component *dc)
4708 if (d_left (dc)->type != DEMANGLE_COMPONENT_TEMPLATE)
4709 d_print_comp (dpi, d_left (dc));
4725 dpt.template_decl = d_left (dc);
4727 d_print_comp (dpi, d_left (d_left (dc)));
4734 d_print_comp (dpi, d_right (d_left (dc)));
4794 struct demangle_component *dc;
4828 dc = cplus_demangle_type (&di);
4831 dc = cplus_demangle_mangled_name (&di, 1);
4836 dc = d_make_comp (&di,
4851 dc = NULL;
4854 d_dump (dc, 0);
4857 status = (dc != NULL)
4858 ? cplus_demangle_print_callback (options, dc, callback, opaque)
5084 struct demangle_component *dc;
5104 dc = cplus_demangle_mangled_name (&di, 1);
5110 while (dc != NULL)
5112 switch (dc->type)
5115 dc = NULL;
5122 dc = d_left (dc);
5126 dc = d_right (dc);
5129 *ctor_kind = dc->u.s_ctor.kind;
5131 dc = NULL;
5134 *dtor_kind = dc->u.s_dtor.kind;
5136 dc = NULL;