Lines Matching defs:dpi

4379 d_count_templates_scopes (struct d_print_info *dpi,
4382 if (dc == NULL || dc->d_counting > 1 || dpi->recursion > MAX_RECURSION_COUNT)
4412 dpi->num_copy_templates++;
4418 dpi->num_saved_scopes++;
4487 if (dpi->recursion > DEMANGLE_RECURSION_LIMIT)
4492 ++ dpi->recursion;
4493 d_count_templates_scopes (dpi, d_left (dc));
4494 d_count_templates_scopes (dpi, d_right (dc));
4495 -- dpi->recursion;
4499 d_count_templates_scopes (dpi, dc->u.s_ctor.name);
4503 d_count_templates_scopes (dpi, dc->u.s_dtor.name);
4507 d_count_templates_scopes (dpi, dc->u.s_extended_operator.name);
4514 d_count_templates_scopes (dpi, d_left (dc));
4519 d_count_templates_scopes (dpi, dc->u.s_unary_num.sub);
4527 d_print_init (struct d_print_info *dpi, demangle_callbackref callback,
4530 dpi->len = 0;
4531 dpi->last_char = '\0';
4532 dpi->templates = NULL;
4533 dpi->modifiers = NULL;
4534 dpi->pack_index = 0;
4535 dpi->flush_count = 0;
4537 dpi->callback = callback;
4538 dpi->opaque = opaque;
4540 dpi->demangle_failure = 0;
4541 dpi->recursion = 0;
4542 dpi->lambda_tpl_parms = 0;
4544 dpi->component_stack = NULL;
4546 dpi->saved_scopes = NULL;
4547 dpi->next_saved_scope = 0;
4548 dpi->num_saved_scopes = 0;
4550 dpi->copy_templates = NULL;
4551 dpi->next_copy_template = 0;
4552 dpi->num_copy_templates = 0;
4554 d_count_templates_scopes (dpi, dc);
4558 if (dpi->recursion < DEMANGLE_RECURSION_LIMIT)
4559 dpi->recursion = 0;
4560 dpi->num_copy_templates *= dpi->num_saved_scopes;
4562 dpi->current_template = NULL;
4568 d_print_error (struct d_print_info *dpi)
4570 dpi->demangle_failure = 1;
4574 d_print_saw_error (struct d_print_info *dpi)
4576 return dpi->demangle_failure != 0;
4582 d_print_flush (struct d_print_info *dpi)
4584 dpi->buf[dpi->len] = '\0';
4585 dpi->callback (dpi->buf, dpi->len, dpi->opaque);
4586 dpi->len = 0;
4587 dpi->flush_count++;
4593 d_append_char (struct d_print_info *dpi, char c)
4595 if (dpi->len == sizeof (dpi->buf) - 1)
4596 d_print_flush (dpi);
4598 dpi->buf[dpi->len++] = c;
4599 dpi->last_char = c;
4603 d_append_buffer (struct d_print_info *dpi, const char *s, size_t l)
4608 d_append_char (dpi, s[i]);
4612 d_append_string (struct d_print_info *dpi, const char *s)
4614 d_append_buffer (dpi, s, strlen (s));
4618 d_append_num (struct d_print_info *dpi, int l)
4622 d_append_string (dpi, buf);
4626 d_last_char (struct d_print_info *dpi)
4628 return dpi->last_char;
4646 struct d_print_info dpi;
4648 d_print_init (&dpi, callback, opaque, dc);
4654 __extension__ struct d_saved_scope scopes[(dpi.num_saved_scopes > 0)
4655 ? dpi.num_saved_scopes : 1];
4656 __extension__ struct d_print_template temps[(dpi.num_copy_templates > 0)
4657 ? dpi.num_copy_templates : 1];
4659 dpi.saved_scopes = scopes;
4660 dpi.copy_templates = temps;
4662 dpi.saved_scopes = alloca (dpi.num_saved_scopes
4663 * sizeof (*dpi.saved_scopes));
4664 dpi.copy_templates = alloca (dpi.num_copy_templates
4665 * sizeof (*dpi.copy_templates));
4668 d_print_comp (&dpi, options, dc);
4671 d_print_flush (&dpi);
4673 return ! d_print_saw_error (&dpi);
4738 d_lookup_template_argument (struct d_print_info *dpi,
4741 if (dpi->templates == NULL)
4743 d_print_error (dpi);
4748 (d_right (dpi->templates->template_decl),
4755 d_find_pack (struct d_print_info *dpi,
4765 a = d_lookup_template_argument (dpi, dc);
4788 return d_find_pack (dpi, dc->u.s_extended_operator.name);
4790 return d_find_pack (dpi, dc->u.s_ctor.name);
4792 return d_find_pack (dpi, dc->u.s_dtor.name);
4795 a = d_find_pack (dpi, d_left (dc));
4798 return d_find_pack (dpi, d_right (dc));
4821 d_args_length (struct d_print_info *dpi, const struct demangle_component *dc)
4832 struct demangle_component *a = d_find_pack (dpi, d_left (elt));
4845 d_print_subexpr (struct d_print_info *dpi, int options,
4855 d_append_char (dpi, '(');
4856 d_print_comp (dpi, options, dc);
4858 d_append_char (dpi, ')');
4864 d_save_scope (struct d_print_info *dpi,
4870 if (dpi->next_saved_scope >= dpi->num_saved_scopes)
4872 d_print_error (dpi);
4875 scope = &dpi->saved_scopes[dpi->next_saved_scope];
4876 dpi->next_saved_scope++;
4881 for (src = dpi->templates; src != NULL; src = src->next)
4885 if (dpi->next_copy_template >= dpi->num_copy_templates)
4887 d_print_error (dpi);
4890 dst = &dpi->copy_templates[dpi->next_copy_template];
4891 dpi->next_copy_template++;
4905 d_get_saved_scope (struct d_print_info *dpi,
4910 for (i = 0; i < dpi->next_saved_scope; i++)
4911 if (dpi->saved_scopes[i].container == container)
4912 return &dpi->saved_scopes[i];
4921 d_maybe_print_fold_expression (struct d_print_info *dpi, int options,
4942 save_idx = dpi->pack_index;
4943 dpi->pack_index = -1;
4949 d_append_string (dpi, "(...");
4950 d_print_expr_op (dpi, options, operator_);
4951 d_print_subexpr (dpi, options, op1);
4952 d_append_char (dpi, ')');
4957 d_append_char (dpi, '(');
4958 d_print_subexpr (dpi, options, op1);
4959 d_print_expr_op (dpi, options, operator_);
4960 d_append_string (dpi, "...)");
4967 d_append_char (dpi, '(');
4968 d_print_subexpr (dpi, options, op1);
4969 d_print_expr_op (dpi, options, operator_);
4970 d_append_string (dpi, "...");
4971 d_print_expr_op (dpi, options, operator_);
4972 d_print_subexpr (dpi, options, op2);
4973 d_append_char (dpi, ')');
4977 dpi->pack_index = save_idx;
5000 d_maybe_print_designated_init (struct d_print_info *dpi, int options,
5013 d_append_char (dpi, '.');
5015 d_append_char (dpi, '[');
5017 d_print_comp (dpi, options, op1);
5020 d_append_string (dpi, " ... ");
5021 d_print_comp (dpi, options, d_left (op2));
5025 d_append_char (dpi, ']');
5029 d_print_comp (dpi, options, op2);
5033 d_append_char (dpi, '=');
5034 d_print_subexpr (dpi, options, op2);
5040 d_print_lambda_parm_name (struct d_print_info *dpi, int type, unsigned index)
5046 dpi->demangle_failure = 1;
5062 d_append_string (dpi, str);
5063 d_append_num (dpi, index);
5069 d_print_comp_inner (struct d_print_info *dpi, int options,
5085 d_print_error (dpi);
5088 if (d_print_saw_error (dpi))
5095 d_append_buffer (dpi, dc->u.s_name.s, dc->u.s_name.len);
5097 d_print_java_identifier (dpi, dc->u.s_name.s, dc->u.s_name.len);
5101 d_print_comp (dpi, options, d_left (dc));
5102 d_append_string (dpi, "[abi:");
5103 d_print_comp (dpi, options, d_right (dc));
5104 d_append_char (dpi, ']');
5108 d_append_char (dpi, '[');
5111 d_print_comp (dpi, options, d_left (dc));
5115 d_append_string (dpi, ", ");
5117 d_append_char (dpi, ']');
5121 d_print_comp (dpi, options, d_left (dc));
5122 d_append_char (dpi, '@');
5123 d_print_comp (dpi, options, d_right (dc));
5130 d_print_comp (dpi, options, d_left (dc));
5134 d_append_char (dpi, c);
5135 d_print_comp (dpi, options, d_right (dc));
5141 d_print_comp (dpi, options, d_left (dc));
5143 d_append_string (dpi, "::");
5145 d_append_char (dpi, '.');
5150 d_append_string (dpi, "{default arg#");
5151 d_append_num (dpi, local_name->u.s_unary_num.num + 1);
5152 d_append_string (dpi, "}::");
5155 d_print_comp (dpi, options, local_name);
5170 hold_modifiers = dpi->modifiers;
5171 dpi->modifiers = 0;
5178 d_print_error (dpi);
5182 adpm[i].next = dpi->modifiers;
5183 dpi->modifiers = &adpm[i];
5186 adpm[i].templates = dpi->templates;
5197 d_print_error (dpi);
5215 d_print_error (dpi);
5221 dpi->modifiers = &adpm[i];
5225 adpm[i - 1].templates = dpi->templates;
5232 d_print_error (dpi);
5241 dpt.next = dpi->templates;
5242 dpi->templates = &dpt;
5262 d_print_comp (dpi, options, d_right (dc));
5265 dpi->templates = dpt.next;
5274 d_append_char (dpi, ' ');
5275 d_print_mod (dpi, options, adpm[i].mod);
5279 dpi->modifiers = hold_modifiers;
5292 hold_current = dpi->current_template;
5293 dpi->current_template = dc;
5299 hold_dpm = dpi->modifiers;
5300 dpi->modifiers = NULL;
5312 d_print_comp (dpi, options, d_right (dc));
5313 d_append_string (dpi, "[]");
5317 d_print_comp (dpi, options, dcl);
5318 if (d_last_char (dpi) == '<')
5319 d_append_char (dpi, ' ');
5320 d_append_char (dpi, '<');
5321 d_print_comp (dpi, options, d_right (dc));
5324 if (d_last_char (dpi) == '>')
5325 d_append_char (dpi, ' ');
5326 d_append_char (dpi, '>');
5329 dpi->modifiers = hold_dpm;
5330 dpi->current_template = hold_current;
5336 if (dpi->lambda_tpl_parms > dc->u.s_number.number + 1)
5339 = d_left (dpi->templates->template_decl);
5346 dpi->demangle_failure = 1;
5348 d_print_lambda_parm_name (dpi, a->type, dc->u.s_number.number);
5350 else if (dpi->lambda_tpl_parms)
5355 d_append_buffer (dpi, "auto:", 5);
5356 d_append_num (dpi, dc->u.s_number.number + 1);
5361 struct demangle_component *a = d_lookup_template_argument (dpi, dc);
5364 a = d_index_template_argument (a, dpi->pack_index);
5368 d_print_error (dpi);
5377 hold_dpt = dpi->templates;
5378 dpi->templates = hold_dpt->next;
5380 d_print_comp (dpi, options, a);
5382 dpi->templates = hold_dpt;
5387 d_append_string (dpi, "template parameter object for ");
5388 d_print_comp (dpi, options, d_left (dc));
5392 d_print_comp (dpi, options, dc->u.s_ctor.name);
5396 d_append_char (dpi, '~');
5397 d_print_comp (dpi, options, dc->u.s_dtor.name);
5401 d_append_string (dpi, "initializer for module ");
5402 d_print_comp (dpi, options, d_left (dc));
5406 d_append_string (dpi, "vtable for ");
5407 d_print_comp (dpi, options, d_left (dc));
5411 d_append_string (dpi, "VTT for ");
5412 d_print_comp (dpi, options, d_left (dc));
5416 d_append_string (dpi, "construction vtable for ");
5417 d_print_comp (dpi, options, d_left (dc));
5418 d_append_string (dpi, "-in-");
5419 d_print_comp (dpi, options, d_right (dc));
5423 d_append_string (dpi, "typeinfo for ");
5424 d_print_comp (dpi, options, d_left (dc));
5428 d_append_string (dpi, "typeinfo name for ");
5429 d_print_comp (dpi, options, d_left (dc));
5433 d_append_string (dpi, "typeinfo fn for ");
5434 d_print_comp (dpi, options, d_left (dc));
5438 d_append_string (dpi, "non-virtual thunk to ");
5439 d_print_comp (dpi, options, d_left (dc));
5443 d_append_string (dpi, "virtual thunk to ");
5444 d_print_comp (dpi, options, d_left (dc));
5448 d_append_string (dpi, "covariant return thunk to ");
5449 d_print_comp (dpi, options, d_left (dc));
5453 d_append_string (dpi, "java Class for ");
5454 d_print_comp (dpi, options, d_left (dc));
5458 d_append_string (dpi, "guard variable for ");
5459 d_print_comp (dpi, options, d_left (dc));
5463 d_append_string (dpi, "TLS init function for ");
5464 d_print_comp (dpi, options, d_left (dc));
5468 d_append_string (dpi, "TLS wrapper function for ");
5469 d_print_comp (dpi, options, d_left (dc));
5473 d_append_string (dpi, "reference temporary #");
5474 d_print_comp (dpi, options, d_right (dc));
5475 d_append_string (dpi, " for ");
5476 d_print_comp (dpi, options, d_left (dc));
5480 d_append_string (dpi, "hidden alias for ");
5481 d_print_comp (dpi, options, d_left (dc));
5485 d_append_string (dpi, "transaction clone for ");
5486 d_print_comp (dpi, options, d_left (dc));
5490 d_append_string (dpi, "non-transaction clone for ");
5491 d_print_comp (dpi, options, d_left (dc));
5495 d_append_buffer (dpi, dc->u.s_string.string, dc->u.s_string.len);
5508 for (pdpm = dpi->modifiers; pdpm != NULL; pdpm = pdpm->next)
5518 d_print_comp (dpi, options, d_left (dc));
5531 if (!dpi->lambda_tpl_parms
5534 struct d_saved_scope *scope = d_get_saved_scope (dpi, sub);
5543 d_save_scope (dpi, sub);
5544 if (d_print_saw_error (dpi))
5555 for (dcse = dpi->component_stack; dcse != NULL;
5560 && dcse != dpi->component_stack))
5569 saved_templates = dpi->templates;
5570 dpi->templates = scope->templates;
5575 a = d_lookup_template_argument (dpi, sub);
5577 a = d_index_template_argument (a, dpi->pack_index);
5582 dpi->templates = saved_templates;
5584 d_print_error (dpi);
5609 dpm.next = dpi->modifiers;
5610 dpi->modifiers = &dpm;
5613 dpm.templates = dpi->templates;
5618 d_print_comp (dpi, options, mod_inner);
5623 d_print_mod (dpi, options, dc);
5625 dpi->modifiers = dpm.next;
5628 dpi->templates = saved_templates;
5635 d_append_buffer (dpi, dc->u.s_builtin.type->name,
5638 d_append_buffer (dpi, dc->u.s_builtin.type->java_name,
5643 d_append_buffer (dpi, dc->u.s_extended_builtin.type->name,
5645 d_append_num (dpi, dc->u.s_extended_builtin.arg);
5647 d_append_buffer (dpi, &dc->u.s_extended_builtin.suffix, 1);
5651 d_print_comp (dpi, options, d_left (dc));
5657 d_print_function_type (dpi,
5659 dc, dpi->modifiers);
5663 d_print_comp (dpi, options & ~(DMGL_RET_POSTFIX | DMGL_RET_DROP),
5671 dpm.next = dpi->modifiers;
5672 dpi->modifiers = &dpm;
5675 dpm.templates = dpi->templates;
5677 d_print_comp (dpi, options & ~(DMGL_RET_POSTFIX | DMGL_RET_DROP),
5680 dpi->modifiers = dpm.next;
5688 d_append_char (dpi, ' ');
5692 d_print_function_type (dpi,
5694 dc, dpi->modifiers);
5714 hold_modifiers = dpi->modifiers;
5717 dpi->modifiers = &adpm[0];
5720 adpm[0].templates = dpi->templates;
5733 d_print_error (dpi);
5738 adpm[i].next = dpi->modifiers;
5739 dpi->modifiers = &adpm[i];
5747 d_print_comp (dpi, options, d_right (dc));
5749 dpi->modifiers = hold_modifiers;
5757 d_print_mod (dpi, options, adpm[i].mod);
5760 d_print_array_type (dpi, options, dc, dpi->modifiers);
5770 dpm.next = dpi->modifiers;
5771 dpi->modifiers = &dpm;
5774 dpm.templates = dpi->templates;
5776 d_print_comp (dpi, options, d_right (dc));
5781 d_print_mod (dpi, options, dc);
5783 dpi->modifiers = dpm.next;
5791 d_print_comp (dpi, options, d_left (dc));
5797 dpi->len -= 2 wouldn't work. */
5798 if (dpi->len >= sizeof (dpi->buf) - 2)
5799 d_print_flush (dpi);
5800 d_append_string (dpi, ", ");
5801 len = dpi->len;
5802 flush_count = dpi->flush_count;
5803 d_print_comp (dpi, options, d_right (dc));
5806 if (dpi->flush_count == flush_count && dpi->len == len)
5807 dpi->len -= 2;
5817 d_print_comp (dpi, options, type);
5818 d_append_char (dpi, '{');
5819 d_print_comp (dpi, options, list);
5820 d_append_char (dpi, '}');
5829 d_append_string (dpi, "operator");
5832 d_append_char (dpi, ' ');
5836 d_append_buffer (dpi, op->name, len);
5841 d_append_string (dpi, "operator ");
5842 d_print_comp (dpi, options, dc->u.s_extended_operator.name);
5846 d_append_string (dpi, "operator ");
5847 d_print_conversion (dpi, options, dc);
5851 d_print_expr_op (dpi, options, d_left (dc));
5876 d_print_subexpr (dpi, options, operand);
5877 d_print_expr_op (dpi, options, op);
5885 struct demangle_component *a = d_find_pack (dpi, operand);
5887 d_append_num (dpi, len);
5892 int len = d_args_length (dpi, operand);
5893 d_append_num (dpi, len);
5898 d_print_expr_op (dpi, options, op);
5901 d_append_char (dpi, '(');
5902 d_print_cast (dpi, options, op);
5903 d_append_char (dpi, ')');
5907 d_print_comp (dpi, options, operand);
5911 d_append_char (dpi, '(');
5912 d_print_comp (dpi, options, operand);
5913 d_append_char (dpi, ')');
5916 d_print_subexpr (dpi, options, operand);
5923 d_print_error (dpi);
5929 d_print_expr_op (dpi, options, d_left (dc));
5930 d_append_char (dpi, '<');
5931 d_print_comp (dpi, options, d_left (d_right (dc)));
5932 d_append_string (dpi, ">(");
5933 d_print_comp (dpi, options, d_right (d_right (dc)));
5934 d_append_char (dpi, ')');
5938 if (d_maybe_print_fold_expression (dpi, options, dc))
5941 if (d_maybe_print_designated_init (dpi, options, dc))
5950 d_append_char (dpi, '(');
5962 d_print_error (dpi);
5963 d_print_subexpr (dpi, options, d_left (func));
5966 d_print_subexpr (dpi, options, d_left (d_right (dc)));
5969 d_append_char (dpi, '[');
5970 d_print_comp (dpi, options, d_right (d_right (dc)));
5971 d_append_char (dpi, ']');
5976 d_print_expr_op (dpi, options, d_left (dc));
5977 d_print_subexpr (dpi, options, d_right (d_right (dc)));
5983 d_append_char (dpi, ')');
5989 d_print_error (dpi);
5996 d_print_error (dpi);
5999 if (d_maybe_print_fold_expression (dpi, options, dc))
6001 if (d_maybe_print_designated_init (dpi, options, dc))
6011 d_print_subexpr (dpi, options, first);
6012 d_print_expr_op (dpi, options, op);
6013 d_print_subexpr (dpi, options, second);
6014 d_append_string (dpi, " : ");
6015 d_print_subexpr (dpi, options, third);
6019 d_append_string (dpi, "new ");
6022 d_print_subexpr (dpi, options, first);
6023 d_append_char (dpi, ' ');
6025 d_print_comp (dpi, options, second);
6027 d_print_subexpr (dpi, options, third);
6035 d_print_error (dpi);
6059 d_append_char (dpi, '-');
6060 d_print_comp (dpi, options, d_right (dc));
6066 d_append_char (dpi, 'u');
6069 d_append_char (dpi, 'l');
6072 d_append_string (dpi, "ul");
6075 d_append_string (dpi, "ll");
6078 d_append_string (dpi, "ull");
6093 d_append_string (dpi, "false");
6096 d_append_string (dpi, "true");
6109 d_append_char (dpi, '(');
6110 d_print_comp (dpi, options, d_left (dc));
6111 d_append_char (dpi, ')');
6113 d_append_char (dpi, '-');
6115 d_append_char (dpi, '[');
6116 d_print_comp (dpi, options, d_right (dc));
6118 d_append_char (dpi, ']');
6123 d_print_comp (dpi, options, d_left (dc));
6124 d_append_char (dpi, '(');
6125 d_print_comp (dpi, options, d_right (dc));
6126 d_append_char (dpi, ')');
6130 d_append_num (dpi, dc->u.s_number.number);
6134 d_append_string (dpi, "java resource ");
6135 d_print_comp (dpi, options, d_left (dc));
6139 d_print_comp (dpi, options, d_left (dc));
6140 d_print_comp (dpi, options, d_right (dc));
6144 d_append_char (dpi, dc->u.s_character.character);
6148 d_append_string (dpi, "decltype (");
6149 d_print_comp (dpi, options, d_left (dc));
6150 d_append_char (dpi, ')');
6157 if (!dpi->lambda_tpl_parms)
6158 a = d_find_pack (dpi, d_left (dc));
6164 d_print_subexpr (dpi, options, d_left (dc));
6165 d_append_string (dpi, "...");
6176 d_append_string (dpi, ", ");
6177 dpi->pack_index = i;
6178 d_print_comp (dpi, options, dc);
6188 d_append_string (dpi, "this");
6191 d_append_string (dpi, "{parm#");
6192 d_append_num (dpi, num);
6193 d_append_char (dpi, '}');
6199 d_append_string (dpi, "global constructors keyed to ");
6200 d_print_comp (dpi, options, dc->u.s_binary.left);
6204 d_append_string (dpi, "global destructors keyed to ");
6205 d_print_comp (dpi, options, dc->u.s_binary.left);
6210 d_append_string (dpi, "{lambda");
6216 int saved_tpl_parms = dpi->lambda_tpl_parms;
6217 dpi->lambda_tpl_parms = 0;
6220 dpt.next = dpi->templates;
6221 dpi->templates = &dpt;
6226 d_append_char (dpi, '<');
6230 if (dpi->lambda_tpl_parms++)
6231 d_append_string (dpi, ", ");
6232 d_print_comp (dpi, options, parm);
6233 d_append_char (dpi, ' ');
6236 d_print_lambda_parm_name (dpi, parm->type,
6237 dpi->lambda_tpl_parms - 1);
6239 d_append_char (dpi, '>');
6243 dpi->lambda_tpl_parms++;
6245 d_append_char (dpi, '(');
6246 d_print_comp (dpi, options, parms);
6247 dpi->lambda_tpl_parms = saved_tpl_parms;
6248 dpi->templates = dpt.next;
6249 d_append_string (dpi, ")#");
6250 d_append_num (dpi, dc->u.s_unary_num.num + 1);
6251 d_append_char (dpi, '}');
6256 d_append_string (dpi, "{unnamed type#");
6257 d_append_num (dpi, dc->u.s_number.number + 1);
6258 d_append_char (dpi, '}');
6262 d_print_comp (dpi, options, d_left (dc));
6263 d_append_string (dpi, " [clone ");
6264 d_print_comp (dpi, options, d_right (dc));
6265 d_append_char (dpi, ']');
6269 d_print_comp (dpi, options, d_left (dc));
6270 d_append_string (dpi, "[friend]");
6275 d_append_char (dpi, '<');
6281 d_append_string (dpi, ", ");
6282 d_print_comp (dpi, options, parm);
6284 d_append_char (dpi, '>');
6289 d_append_string (dpi, "typename");
6293 d_print_comp (dpi, options, d_left (dc));
6297 d_append_string (dpi, "template");
6298 d_print_comp (dpi, options, d_left (dc));
6299 d_append_string (dpi, " class");
6303 d_print_comp (dpi, options, d_left (dc));
6304 d_append_string (dpi, "...");
6308 d_print_comp (dpi, options, d_left (dc));
6309 d_append_string (dpi, " requires ");
6310 d_print_comp (dpi, options, d_right (dc));
6314 d_print_error (dpi);
6320 d_print_comp (struct d_print_info *dpi, int options,
6324 if (dc == NULL || dc->d_printing > 1 || dpi->recursion > MAX_RECURSION_COUNT)
6326 d_print_error (dpi);
6331 dpi->recursion++;
6334 self.parent = dpi->component_stack;
6335 dpi->component_stack = &self;
6337 d_print_comp_inner (dpi, options, dc);
6339 dpi->component_stack = self.parent;
6341 dpi->recursion--;
6350 d_print_java_identifier (struct d_print_info *dpi, const char *name, int len)
6386 d_append_char (dpi, c);
6392 d_append_char (dpi, *p);
6400 d_print_mod_list (struct d_print_info *dpi, int options,
6405 if (mods == NULL || d_print_saw_error (dpi))
6412 d_print_mod_list (dpi, options, mods->next, suffix);
6418 hold_dpt = dpi->templates;
6419 dpi->templates = mods->templates;
6423 d_print_function_type (dpi, options, mods->mod, mods->next);
6424 dpi->templates = hold_dpt;
6429 d_print_array_type (dpi, options, mods->mod, mods->next);
6430 dpi->templates = hold_dpt;
6443 hold_modifiers = dpi->modifiers;
6444 dpi->modifiers = NULL;
6445 d_print_comp (dpi, options, d_left (mods->mod));
6446 dpi->modifiers = hold_modifiers;
6449 d_append_string (dpi, "::");
6451 d_append_char (dpi, '.');
6457 d_append_string (dpi, "{default arg#");
6458 d_append_num (dpi, dc->u.s_unary_num.num + 1);
6459 d_append_string (dpi, "}::");
6466 d_print_comp (dpi, options, dc);
6468 dpi->templates = hold_dpt;
6472 d_print_mod (dpi, options, mods->mod);
6474 dpi->templates = hold_dpt;
6476 d_print_mod_list (dpi, options, mods->next, suffix);
6482 d_print_mod (struct d_print_info *dpi, int options,
6489 d_append_string (dpi, " restrict");
6493 d_append_string (dpi, " volatile");
6497 d_append_string (dpi, " const");
6500 d_append_string (dpi, " transaction_safe");
6503 d_append_string (dpi, " noexcept");
6506 d_append_char (dpi, '(');
6507 d_print_comp (dpi, options, d_right (mod));
6508 d_append_char (dpi, ')');
6512 d_append_string (dpi, " throw");
6515 d_append_char (dpi, '(');
6516 d_print_comp (dpi, options, d_right (mod));
6517 d_append_char (dpi, ')');
6521 d_append_char (dpi, ' ');
6522 d_print_comp (dpi, options, d_right (mod));
6527 d_append_char (dpi, '*');
6531 d_append_char (dpi, ' ');
6534 d_append_char (dpi, '&');
6537 d_append_char (dpi, ' ');
6540 d_append_string (dpi, "&&");
6545 d_append_string (dpi, " _Complex");
6548 d_append_string (dpi, " _Imaginary");
6551 if (d_last_char (dpi) != '(')
6552 d_append_char (dpi, ' ');
6553 d_print_comp (dpi, options, d_left (mod));
6554 d_append_string (dpi, "::*");
6557 d_print_comp (dpi, options, d_left (mod));
6560 d_append_string (dpi, " __vector(");
6561 d_print_comp (dpi, options, d_left (mod));
6562 d_append_char (dpi, ')');
6568 d_print_comp (dpi, options, mod);
6576 d_print_function_type (struct d_print_info *dpi, int options,
6625 if (d_last_char (dpi) != '('
6626 && d_last_char (dpi) != '*')
6629 if (need_space && d_last_char (dpi) != ' ')
6630 d_append_char (dpi, ' ');
6631 d_append_char (dpi, '(');
6634 hold_modifiers = dpi->modifiers;
6635 dpi->modifiers = NULL;
6637 d_print_mod_list (dpi, options, mods, 0);
6640 d_append_char (dpi, ')');
6642 d_append_char (dpi, '(');
6644 d_append_string (dpi, "this ");
6647 d_print_comp (dpi, options, d_right (dc));
6649 d_append_char (dpi, ')');
6651 d_print_mod_list (dpi, options, mods, 1);
6653 dpi->modifiers = hold_modifiers;
6659 d_print_array_type (struct d_print_info *dpi, int options,
6691 d_append_string (dpi, " (");
6693 d_print_mod_list (dpi, options, mods, 0);
6696 d_append_char (dpi, ')');
6700 d_append_char (dpi, ' ');
6702 d_append_char (dpi, '[');
6705 d_print_comp (dpi, options, d_left (dc));
6707 d_append_char (dpi, ']');
6713 d_print_expr_op (struct d_print_info *dpi, int options,
6717 d_append_buffer (dpi, dc->u.s_operator.op->name,
6720 d_print_comp (dpi, options, dc);
6726 d_print_cast (struct d_print_info *dpi, int options,
6729 d_print_comp (dpi, options, d_left (dc));
6735 d_print_conversion (struct d_print_info *dpi, int options,
6742 if (dpi->current_template != NULL)
6744 dpt.next = dpi->templates;
6745 dpi->templates = &dpt;
6746 dpt.template_decl = dpi->current_template;
6749 d_print_comp (dpi, options, d_left (dc));
6751 if (dpi->current_template != NULL)
6752 dpi->templates = dpt.next;