Lines Matching defs:dpi

4088 d_count_templates_scopes (struct d_print_info *dpi,
4091 if (dc == NULL || dc->d_counting > 1 || dpi->recursion > MAX_RECURSION_COUNT)
4110 dpi->num_copy_templates++;
4116 dpi->num_saved_scopes++;
4182 if (dpi->recursion > DEMANGLE_RECURSION_LIMIT)
4187 ++ dpi->recursion;
4188 d_count_templates_scopes (dpi, d_left (dc));
4189 d_count_templates_scopes (dpi, d_right (dc));
4190 -- dpi->recursion;
4194 d_count_templates_scopes (dpi, dc->u.s_ctor.name);
4198 d_count_templates_scopes (dpi, dc->u.s_dtor.name);
4202 d_count_templates_scopes (dpi, dc->u.s_extended_operator.name);
4206 d_count_templates_scopes (dpi, dc->u.s_fixed.length);
4211 d_count_templates_scopes (dpi, d_left (dc));
4216 d_count_templates_scopes (dpi, dc->u.s_unary_num.sub);
4224 d_print_init (struct d_print_info *dpi, demangle_callbackref callback,
4227 dpi->len = 0;
4228 dpi->last_char = '\0';
4229 dpi->templates = NULL;
4230 dpi->modifiers = NULL;
4231 dpi->pack_index = 0;
4232 dpi->flush_count = 0;
4234 dpi->callback = callback;
4235 dpi->opaque = opaque;
4237 dpi->demangle_failure = 0;
4238 dpi->recursion = 0;
4239 dpi->is_lambda_arg = 0;
4241 dpi->component_stack = NULL;
4243 dpi->saved_scopes = NULL;
4244 dpi->next_saved_scope = 0;
4245 dpi->num_saved_scopes = 0;
4247 dpi->copy_templates = NULL;
4248 dpi->next_copy_template = 0;
4249 dpi->num_copy_templates = 0;
4251 d_count_templates_scopes (dpi, dc);
4255 if (dpi->recursion < DEMANGLE_RECURSION_LIMIT)
4256 dpi->recursion = 0;
4257 dpi->num_copy_templates *= dpi->num_saved_scopes;
4259 dpi->current_template = NULL;
4265 d_print_error (struct d_print_info *dpi)
4267 dpi->demangle_failure = 1;
4271 d_print_saw_error (struct d_print_info *dpi)
4273 return dpi->demangle_failure != 0;
4279 d_print_flush (struct d_print_info *dpi)
4281 dpi->buf[dpi->len] = '\0';
4282 dpi->callback (dpi->buf, dpi->len, dpi->opaque);
4283 dpi->len = 0;
4284 dpi->flush_count++;
4290 d_append_char (struct d_print_info *dpi, char c)
4292 if (dpi->len == sizeof (dpi->buf) - 1)
4293 d_print_flush (dpi);
4295 dpi->buf[dpi->len++] = c;
4296 dpi->last_char = c;
4300 d_append_buffer (struct d_print_info *dpi, const char *s, size_t l)
4305 d_append_char (dpi, s[i]);
4309 d_append_string (struct d_print_info *dpi, const char *s)
4311 d_append_buffer (dpi, s, strlen (s));
4315 d_append_num (struct d_print_info *dpi, int l)
4319 d_append_string (dpi, buf);
4323 d_last_char (struct d_print_info *dpi)
4325 return dpi->last_char;
4343 struct d_print_info dpi;
4345 d_print_init (&dpi, callback, opaque, dc);
4351 __extension__ struct d_saved_scope scopes[(dpi.num_saved_scopes > 0)
4352 ? dpi.num_saved_scopes : 1];
4353 __extension__ struct d_print_template temps[(dpi.num_copy_templates > 0)
4354 ? dpi.num_copy_templates : 1];
4356 dpi.saved_scopes = scopes;
4357 dpi.copy_templates = temps;
4359 dpi.saved_scopes = alloca (dpi.num_saved_scopes
4360 * sizeof (*dpi.saved_scopes));
4361 dpi.copy_templates = alloca (dpi.num_copy_templates
4362 * sizeof (*dpi.copy_templates));
4365 d_print_comp (&dpi, options, dc);
4368 d_print_flush (&dpi);
4370 return ! d_print_saw_error (&dpi);
4435 d_lookup_template_argument (struct d_print_info *dpi,
4438 if (dpi->templates == NULL)
4440 d_print_error (dpi);
4445 (d_right (dpi->templates->template_decl),
4452 d_find_pack (struct d_print_info *dpi,
4462 a = d_lookup_template_argument (dpi, dc);
4485 return d_find_pack (dpi, dc->u.s_extended_operator.name);
4487 return d_find_pack (dpi, dc->u.s_ctor.name);
4489 return d_find_pack (dpi, dc->u.s_dtor.name);
4492 a = d_find_pack (dpi, d_left (dc));
4495 return d_find_pack (dpi, d_right (dc));
4518 d_args_length (struct d_print_info *dpi, const struct demangle_component *dc)
4529 struct demangle_component *a = d_find_pack (dpi, d_left (elt));
4542 d_print_subexpr (struct d_print_info *dpi, int options,
4552 d_append_char (dpi, '(');
4553 d_print_comp (dpi, options, dc);
4555 d_append_char (dpi, ')');
4561 d_save_scope (struct d_print_info *dpi,
4567 if (dpi->next_saved_scope >= dpi->num_saved_scopes)
4569 d_print_error (dpi);
4572 scope = &dpi->saved_scopes[dpi->next_saved_scope];
4573 dpi->next_saved_scope++;
4578 for (src = dpi->templates; src != NULL; src = src->next)
4582 if (dpi->next_copy_template >= dpi->num_copy_templates)
4584 d_print_error (dpi);
4587 dst = &dpi->copy_templates[dpi->next_copy_template];
4588 dpi->next_copy_template++;
4602 d_get_saved_scope (struct d_print_info *dpi,
4607 for (i = 0; i < dpi->next_saved_scope; i++)
4608 if (dpi->saved_scopes[i].container == container)
4609 return &dpi->saved_scopes[i];
4618 d_maybe_print_fold_expression (struct d_print_info *dpi, int options,
4639 save_idx = dpi->pack_index;
4640 dpi->pack_index = -1;
4646 d_append_string (dpi, "(...");
4647 d_print_expr_op (dpi, options, operator_);
4648 d_print_subexpr (dpi, options, op1);
4649 d_append_char (dpi, ')');
4654 d_append_char (dpi, '(');
4655 d_print_subexpr (dpi, options, op1);
4656 d_print_expr_op (dpi, options, operator_);
4657 d_append_string (dpi, "...)");
4664 d_append_char (dpi, '(');
4665 d_print_subexpr (dpi, options, op1);
4666 d_print_expr_op (dpi, options, operator_);
4667 d_append_string (dpi, "...");
4668 d_print_expr_op (dpi, options, operator_);
4669 d_print_subexpr (dpi, options, op2);
4670 d_append_char (dpi, ')');
4674 dpi->pack_index = save_idx;
4681 d_print_comp_inner (struct d_print_info *dpi, int options,
4697 d_print_error (dpi);
4700 if (d_print_saw_error (dpi))
4707 d_append_buffer (dpi, dc->u.s_name.s, dc->u.s_name.len);
4709 d_print_java_identifier (dpi, dc->u.s_name.s, dc->u.s_name.len);
4713 d_print_comp (dpi, options, d_left (dc));
4714 d_append_string (dpi, "[abi:");
4715 d_print_comp (dpi, options, d_right (dc));
4716 d_append_char (dpi, ']');
4721 d_print_comp (dpi, options, d_left (dc));
4723 d_append_string (dpi, "::");
4725 d_append_char (dpi, '.');
4730 d_append_string (dpi, "{default arg#");
4731 d_append_num (dpi, local_name->u.s_unary_num.num + 1);
4732 d_append_string (dpi, "}::");
4735 d_print_comp (dpi, options, local_name);
4750 hold_modifiers = dpi->modifiers;
4751 dpi->modifiers = 0;
4758 d_print_error (dpi);
4762 adpm[i].next = dpi->modifiers;
4763 dpi->modifiers = &adpm[i];
4766 adpm[i].templates = dpi->templates;
4777 d_print_error (dpi);
4795 d_print_error (dpi);
4801 dpi->modifiers = &adpm[i];
4805 adpm[i - 1].templates = dpi->templates;
4812 d_print_error (dpi);
4821 dpt.next = dpi->templates;
4822 dpi->templates = &dpt;
4826 d_print_comp (dpi, options, d_right (dc));
4829 dpi->templates = dpt.next;
4838 d_append_char (dpi, ' ');
4839 d_print_mod (dpi, options, adpm[i].mod);
4843 dpi->modifiers = hold_modifiers;
4856 hold_current = dpi->current_template;
4857 dpi->current_template = dc;
4863 hold_dpm = dpi->modifiers;
4864 dpi->modifiers = NULL;
4876 d_print_comp (dpi, options, d_right (dc));
4877 d_append_string (dpi, "[]");
4881 d_print_comp (dpi, options, dcl);
4882 if (d_last_char (dpi) == '<')
4883 d_append_char (dpi, ' ');
4884 d_append_char (dpi, '<');
4885 d_print_comp (dpi, options, d_right (dc));
4888 if (d_last_char (dpi) == '>')
4889 d_append_char (dpi, ' ');
4890 d_append_char (dpi, '>');
4893 dpi->modifiers = hold_dpm;
4894 dpi->current_template = hold_current;
4900 if (dpi->is_lambda_arg)
4905 d_append_buffer (dpi, "auto:", 5);
4906 d_append_num (dpi, dc->u.s_number.number + 1);
4911 struct demangle_component *a = d_lookup_template_argument (dpi, dc);
4914 a = d_index_template_argument (a, dpi->pack_index);
4918 d_print_error (dpi);
4927 hold_dpt = dpi->templates;
4928 dpi->templates = hold_dpt->next;
4930 d_print_comp (dpi, options, a);
4932 dpi->templates = hold_dpt;
4937 d_append_string (dpi, "template parameter object for ");
4938 d_print_comp (dpi, options, d_left (dc));
4942 d_print_comp (dpi, options, dc->u.s_ctor.name);
4946 d_append_char (dpi, '~');
4947 d_print_comp (dpi, options, dc->u.s_dtor.name);
4951 d_append_string (dpi, "vtable for ");
4952 d_print_comp (dpi, options, d_left (dc));
4956 d_append_string (dpi, "VTT for ");
4957 d_print_comp (dpi, options, d_left (dc));
4961 d_append_string (dpi, "construction vtable for ");
4962 d_print_comp (dpi, options, d_left (dc));
4963 d_append_string (dpi, "-in-");
4964 d_print_comp (dpi, options, d_right (dc));
4968 d_append_string (dpi, "typeinfo for ");
4969 d_print_comp (dpi, options, d_left (dc));
4973 d_append_string (dpi, "typeinfo name for ");
4974 d_print_comp (dpi, options, d_left (dc));
4978 d_append_string (dpi, "typeinfo fn for ");
4979 d_print_comp (dpi, options, d_left (dc));
4983 d_append_string (dpi, "non-virtual thunk to ");
4984 d_print_comp (dpi, options, d_left (dc));
4988 d_append_string (dpi, "virtual thunk to ");
4989 d_print_comp (dpi, options, d_left (dc));
4993 d_append_string (dpi, "covariant return thunk to ");
4994 d_print_comp (dpi, options, d_left (dc));
4998 d_append_string (dpi, "java Class for ");
4999 d_print_comp (dpi, options, d_left (dc));
5003 d_append_string (dpi, "guard variable for ");
5004 d_print_comp (dpi, options, d_left (dc));
5008 d_append_string (dpi, "TLS init function for ");
5009 d_print_comp (dpi, options, d_left (dc));
5013 d_append_string (dpi, "TLS wrapper function for ");
5014 d_print_comp (dpi, options, d_left (dc));
5018 d_append_string (dpi, "reference temporary #");
5019 d_print_comp (dpi, options, d_right (dc));
5020 d_append_string (dpi, " for ");
5021 d_print_comp (dpi, options, d_left (dc));
5025 d_append_string (dpi, "hidden alias for ");
5026 d_print_comp (dpi, options, d_left (dc));
5030 d_append_string (dpi, "transaction clone for ");
5031 d_print_comp (dpi, options, d_left (dc));
5035 d_append_string (dpi, "non-transaction clone for ");
5036 d_print_comp (dpi, options, d_left (dc));
5040 d_append_buffer (dpi, dc->u.s_string.string, dc->u.s_string.len);
5053 for (pdpm = dpi->modifiers; pdpm != NULL; pdpm = pdpm->next)
5063 d_print_comp (dpi, options, d_left (dc));
5076 if (!dpi->is_lambda_arg
5079 struct d_saved_scope *scope = d_get_saved_scope (dpi, sub);
5088 d_save_scope (dpi, sub);
5089 if (d_print_saw_error (dpi))
5100 for (dcse = dpi->component_stack; dcse != NULL;
5105 && dcse != dpi->component_stack))
5114 saved_templates = dpi->templates;
5115 dpi->templates = scope->templates;
5120 a = d_lookup_template_argument (dpi, sub);
5122 a = d_index_template_argument (a, dpi->pack_index);
5127 dpi->templates = saved_templates;
5129 d_print_error (dpi);
5154 dpm.next = dpi->modifiers;
5155 dpi->modifiers = &dpm;
5158 dpm.templates = dpi->templates;
5163 d_print_comp (dpi, options, mod_inner);
5168 d_print_mod (dpi, options, dc);
5170 dpi->modifiers = dpm.next;
5173 dpi->templates = saved_templates;
5180 d_append_buffer (dpi, dc->u.s_builtin.type->name,
5183 d_append_buffer (dpi, dc->u.s_builtin.type->java_name,
5188 d_print_comp (dpi, options, d_left (dc));
5194 d_print_function_type (dpi,
5196 dc, dpi->modifiers);
5200 d_print_comp (dpi, options & ~(DMGL_RET_POSTFIX | DMGL_RET_DROP),
5208 dpm.next = dpi->modifiers;
5209 dpi->modifiers = &dpm;
5212 dpm.templates = dpi->templates;
5214 d_print_comp (dpi, options & ~(DMGL_RET_POSTFIX | DMGL_RET_DROP),
5217 dpi->modifiers = dpm.next;
5225 d_append_char (dpi, ' ');
5229 d_print_function_type (dpi,
5231 dc, dpi->modifiers);
5251 hold_modifiers = dpi->modifiers;
5254 dpi->modifiers = &adpm[0];
5257 adpm[0].templates = dpi->templates;
5270 d_print_error (dpi);
5275 adpm[i].next = dpi->modifiers;
5276 dpi->modifiers = &adpm[i];
5284 d_print_comp (dpi, options, d_right (dc));
5286 dpi->modifiers = hold_modifiers;
5294 d_print_mod (dpi, options, adpm[i].mod);
5297 d_print_array_type (dpi, options, dc, dpi->modifiers);
5307 dpm.next = dpi->modifiers;
5308 dpi->modifiers = &dpm;
5311 dpm.templates = dpi->templates;
5313 d_print_comp (dpi, options, d_right (dc));
5318 d_print_mod (dpi, options, dc);
5320 dpi->modifiers = dpm.next;
5327 d_append_string (dpi, "_Sat ");
5332 d_print_comp (dpi, options, dc->u.s_fixed.length);
5333 d_append_char (dpi, ' ');
5336 d_append_string (dpi, "_Accum");
5338 d_append_string (dpi, "_Fract");
5344 d_print_comp (dpi, options, d_left (dc));
5350 dpi->len -= 2 wouldn't work. */
5351 if (dpi->len >= sizeof (dpi->buf) - 2)
5352 d_print_flush (dpi);
5353 d_append_string (dpi, ", ");
5354 len = dpi->len;
5355 flush_count = dpi->flush_count;
5356 d_print_comp (dpi, options, d_right (dc));
5359 if (dpi->flush_count == flush_count && dpi->len == len)
5360 dpi->len -= 2;
5370 d_print_comp (dpi, options, type);
5371 d_append_char (dpi, '{');
5372 d_print_comp (dpi, options, list);
5373 d_append_char (dpi, '}');
5382 d_append_string (dpi, "operator");
5385 d_append_char (dpi, ' ');
5389 d_append_buffer (dpi, op->name, len);
5394 d_append_string (dpi, "operator ");
5395 d_print_comp (dpi, options, dc->u.s_extended_operator.name);
5399 d_append_string (dpi, "operator ");
5400 d_print_conversion (dpi, options, dc);
5404 d_print_expr_op (dpi, options, d_left (dc));
5429 d_print_subexpr (dpi, options, operand);
5430 d_print_expr_op (dpi, options, op);
5438 struct demangle_component *a = d_find_pack (dpi, operand);
5440 d_append_num (dpi, len);
5445 int len = d_args_length (dpi, operand);
5446 d_append_num (dpi, len);
5451 d_print_expr_op (dpi, options, op);
5454 d_append_char (dpi, '(');
5455 d_print_cast (dpi, options, op);
5456 d_append_char (dpi, ')');
5460 d_print_comp (dpi, options, operand);
5464 d_append_char (dpi, '(');
5465 d_print_comp (dpi, options, operand);
5466 d_append_char (dpi, ')');
5469 d_print_subexpr (dpi, options, operand);
5476 d_print_error (dpi);
5482 d_print_expr_op (dpi, options, d_left (dc));
5483 d_append_char (dpi, '<');
5484 d_print_comp (dpi, options, d_left (d_right (dc)));
5485 d_append_string (dpi, ">(");
5486 d_print_comp (dpi, options, d_right (d_right (dc)));
5487 d_append_char (dpi, ')');
5491 if (d_maybe_print_fold_expression (dpi, options, dc))
5500 d_append_char (dpi, '(');
5512 d_print_error (dpi);
5513 d_print_subexpr (dpi, options, d_left (func));
5516 d_print_subexpr (dpi, options, d_left (d_right (dc)));
5519 d_append_char (dpi, '[');
5520 d_print_comp (dpi, options, d_right (d_right (dc)));
5521 d_append_char (dpi, ']');
5526 d_print_expr_op (dpi, options, d_left (dc));
5527 d_print_subexpr (dpi, options, d_right (d_right (dc)));
5533 d_append_char (dpi, ')');
5539 d_print_error (dpi);
5546 d_print_error (dpi);
5549 if (d_maybe_print_fold_expression (dpi, options, dc))
5559 d_print_subexpr (dpi, options, first);
5560 d_print_expr_op (dpi, options, op);
5561 d_print_subexpr (dpi, options, second);
5562 d_append_string (dpi, " : ");
5563 d_print_subexpr (dpi, options, third);
5567 d_append_string (dpi, "new ");
5570 d_print_subexpr (dpi, options, first);
5571 d_append_char (dpi, ' ');
5573 d_print_comp (dpi, options, second);
5575 d_print_subexpr (dpi, options, third);
5583 d_print_error (dpi);
5607 d_append_char (dpi, '-');
5608 d_print_comp (dpi, options, d_right (dc));
5614 d_append_char (dpi, 'u');
5617 d_append_char (dpi, 'l');
5620 d_append_string (dpi, "ul");
5623 d_append_string (dpi, "ll");
5626 d_append_string (dpi, "ull");
5641 d_append_string (dpi, "false");
5644 d_append_string (dpi, "true");
5657 d_append_char (dpi, '(');
5658 d_print_comp (dpi, options, d_left (dc));
5659 d_append_char (dpi, ')');
5661 d_append_char (dpi, '-');
5663 d_append_char (dpi, '[');
5664 d_print_comp (dpi, options, d_right (dc));
5666 d_append_char (dpi, ']');
5671 d_append_num (dpi, dc->u.s_number.number);
5675 d_append_string (dpi, "java resource ");
5676 d_print_comp (dpi, options, d_left (dc));
5680 d_print_comp (dpi, options, d_left (dc));
5681 d_print_comp (dpi, options, d_right (dc));
5685 d_append_char (dpi, dc->u.s_character.character);
5689 d_append_string (dpi, "decltype (");
5690 d_print_comp (dpi, options, d_left (dc));
5691 d_append_char (dpi, ')');
5698 struct demangle_component *a = d_find_pack (dpi, d_left (dc));
5704 d_print_subexpr (dpi, options, d_left (dc));
5705 d_append_string (dpi, "...");
5713 dpi->pack_index = i;
5714 d_print_comp (dpi, options, dc);
5716 d_append_string (dpi, ", ");
5725 d_append_string (dpi, "this");
5728 d_append_string (dpi, "{parm#");
5729 d_append_num (dpi, num);
5730 d_append_char (dpi, '}');
5736 d_append_string (dpi, "global constructors keyed to ");
5737 d_print_comp (dpi, options, dc->u.s_binary.left);
5741 d_append_string (dpi, "global destructors keyed to ");
5742 d_print_comp (dpi, options, dc->u.s_binary.left);
5746 d_append_string (dpi, "{lambda(");
5749 dpi->is_lambda_arg++;
5750 d_print_comp (dpi, options, dc->u.s_unary_num.sub);
5751 dpi->is_lambda_arg--;
5752 d_append_string (dpi, ")#");
5753 d_append_num (dpi, dc->u.s_unary_num.num + 1);
5754 d_append_char (dpi, '}');
5758 d_append_string (dpi, "{unnamed type#");
5759 d_append_num (dpi, dc->u.s_number.number + 1);
5760 d_append_char (dpi, '}');
5764 d_print_comp (dpi, options, d_left (dc));
5765 d_append_string (dpi, " [clone ");
5766 d_print_comp (dpi, options, d_right (dc));
5767 d_append_char (dpi, ']');
5771 d_print_error (dpi);
5777 d_print_comp (struct d_print_info *dpi, int options,
5781 if (dc == NULL || dc->d_printing > 1 || dpi->recursion > MAX_RECURSION_COUNT)
5783 d_print_error (dpi);
5788 dpi->recursion++;
5791 self.parent = dpi->component_stack;
5792 dpi->component_stack = &self;
5794 d_print_comp_inner (dpi, options, dc);
5796 dpi->component_stack = self.parent;
5798 dpi->recursion--;
5807 d_print_java_identifier (struct d_print_info *dpi, const char *name, int len)
5843 d_append_char (dpi, c);
5849 d_append_char (dpi, *p);
5857 d_print_mod_list (struct d_print_info *dpi, int options,
5862 if (mods == NULL || d_print_saw_error (dpi))
5869 d_print_mod_list (dpi, options, mods->next, suffix);
5875 hold_dpt = dpi->templates;
5876 dpi->templates = mods->templates;
5880 d_print_function_type (dpi, options, mods->mod, mods->next);
5881 dpi->templates = hold_dpt;
5886 d_print_array_type (dpi, options, mods->mod, mods->next);
5887 dpi->templates = hold_dpt;
5900 hold_modifiers = dpi->modifiers;
5901 dpi->modifiers = NULL;
5902 d_print_comp (dpi, options, d_left (mods->mod));
5903 dpi->modifiers = hold_modifiers;
5906 d_append_string (dpi, "::");
5908 d_append_char (dpi, '.');
5914 d_append_string (dpi, "{default arg#");
5915 d_append_num (dpi, dc->u.s_unary_num.num + 1);
5916 d_append_string (dpi, "}::");
5923 d_print_comp (dpi, options, dc);
5925 dpi->templates = hold_dpt;
5929 d_print_mod (dpi, options, mods->mod);
5931 dpi->templates = hold_dpt;
5933 d_print_mod_list (dpi, options, mods->next, suffix);
5939 d_print_mod (struct d_print_info *dpi, int options,
5946 d_append_string (dpi, " restrict");
5950 d_append_string (dpi, " volatile");
5954 d_append_string (dpi, " const");
5957 d_append_string (dpi, " transaction_safe");
5960 d_append_string (dpi, " noexcept");
5963 d_append_char (dpi, '(');
5964 d_print_comp (dpi, options, d_right (mod));
5965 d_append_char (dpi, ')');
5969 d_append_string (dpi, " throw");
5972 d_append_char (dpi, '(');
5973 d_print_comp (dpi, options, d_right (mod));
5974 d_append_char (dpi, ')');
5978 d_append_char (dpi, ' ');
5979 d_print_comp (dpi, options, d_right (mod));
5984 d_append_char (dpi, '*');
5988 d_append_char (dpi, ' ');
5991 d_append_char (dpi, '&');
5994 d_append_char (dpi, ' ');
5997 d_append_string (dpi, "&&");
6000 d_append_string (dpi, " _Complex");
6003 d_append_string (dpi, " _Imaginary");
6006 if (d_last_char (dpi) != '(')
6007 d_append_char (dpi, ' ');
6008 d_print_comp (dpi, options, d_left (mod));
6009 d_append_string (dpi, "::*");
6012 d_print_comp (dpi, options, d_left (mod));
6015 d_append_string (dpi, " __vector(");
6016 d_print_comp (dpi, options, d_left (mod));
6017 d_append_char (dpi, ')');
6023 d_print_comp (dpi, options, mod);
6031 d_print_function_type (struct d_print_info *dpi, int options,
6077 if (d_last_char (dpi) != '('
6078 && d_last_char (dpi) != '*')
6081 if (need_space && d_last_char (dpi) != ' ')
6082 d_append_char (dpi, ' ');
6083 d_append_char (dpi, '(');
6086 hold_modifiers = dpi->modifiers;
6087 dpi->modifiers = NULL;
6089 d_print_mod_list (dpi, options, mods, 0);
6092 d_append_char (dpi, ')');
6094 d_append_char (dpi, '(');
6097 d_print_comp (dpi, options, d_right (dc));
6099 d_append_char (dpi, ')');
6101 d_print_mod_list (dpi, options, mods, 1);
6103 dpi->modifiers = hold_modifiers;
6109 d_print_array_type (struct d_print_info *dpi, int options,
6141 d_append_string (dpi, " (");
6143 d_print_mod_list (dpi, options, mods, 0);
6146 d_append_char (dpi, ')');
6150 d_append_char (dpi, ' ');
6152 d_append_char (dpi, '[');
6155 d_print_comp (dpi, options, d_left (dc));
6157 d_append_char (dpi, ']');
6163 d_print_expr_op (struct d_print_info *dpi, int options,
6167 d_append_buffer (dpi, dc->u.s_operator.op->name,
6170 d_print_comp (dpi, options, dc);
6176 d_print_cast (struct d_print_info *dpi, int options,
6179 d_print_comp (dpi, options, d_left (dc));
6185 d_print_conversion (struct d_print_info *dpi, int options,
6192 if (dpi->current_template != NULL)
6194 dpt.next = dpi->templates;
6195 dpi->templates = &dpt;
6196 dpt.template_decl = dpi->current_template;
6201 d_print_comp (dpi, options, d_left (dc));
6202 if (dpi->current_template != NULL)
6203 dpi->templates = dpt.next;
6207 d_print_comp (dpi, options, d_left (d_left (dc)));
6212 if (dpi->current_template != NULL)
6213 dpi->templates = dpt.next;
6215 if (d_last_char (dpi) == '<')
6216 d_append_char (dpi, ' ');
6217 d_append_char (dpi, '<');
6218 d_print_comp (dpi, options, d_right (d_left (dc)));
6221 if (d_last_char (dpi) == '>')
6222 d_append_char (dpi, ' ');
6223 d_append_char (dpi, '>');