Lines Matching defs:dpi

4163 d_count_templates_scopes (struct d_print_info *dpi,
4166 if (dc == NULL || dc->d_counting > 1 || dpi->recursion > MAX_RECURSION_COUNT)
4185 dpi->num_copy_templates++;
4191 dpi->num_saved_scopes++;
4258 if (dpi->recursion > DEMANGLE_RECURSION_LIMIT)
4263 ++ dpi->recursion;
4264 d_count_templates_scopes (dpi, d_left (dc));
4265 d_count_templates_scopes (dpi, d_right (dc));
4266 -- dpi->recursion;
4270 d_count_templates_scopes (dpi, dc->u.s_ctor.name);
4274 d_count_templates_scopes (dpi, dc->u.s_dtor.name);
4278 d_count_templates_scopes (dpi, dc->u.s_extended_operator.name);
4282 d_count_templates_scopes (dpi, dc->u.s_fixed.length);
4287 d_count_templates_scopes (dpi, d_left (dc));
4292 d_count_templates_scopes (dpi, dc->u.s_unary_num.sub);
4300 d_print_init (struct d_print_info *dpi, demangle_callbackref callback,
4303 dpi->len = 0;
4304 dpi->last_char = '\0';
4305 dpi->templates = NULL;
4306 dpi->modifiers = NULL;
4307 dpi->pack_index = 0;
4308 dpi->flush_count = 0;
4310 dpi->callback = callback;
4311 dpi->opaque = opaque;
4313 dpi->demangle_failure = 0;
4314 dpi->recursion = 0;
4315 dpi->is_lambda_arg = 0;
4317 dpi->component_stack = NULL;
4319 dpi->saved_scopes = NULL;
4320 dpi->next_saved_scope = 0;
4321 dpi->num_saved_scopes = 0;
4323 dpi->copy_templates = NULL;
4324 dpi->next_copy_template = 0;
4325 dpi->num_copy_templates = 0;
4327 d_count_templates_scopes (dpi, dc);
4331 if (dpi->recursion < DEMANGLE_RECURSION_LIMIT)
4332 dpi->recursion = 0;
4333 dpi->num_copy_templates *= dpi->num_saved_scopes;
4335 dpi->current_template = NULL;
4341 d_print_error (struct d_print_info *dpi)
4343 dpi->demangle_failure = 1;
4347 d_print_saw_error (struct d_print_info *dpi)
4349 return dpi->demangle_failure != 0;
4355 d_print_flush (struct d_print_info *dpi)
4357 dpi->buf[dpi->len] = '\0';
4358 dpi->callback (dpi->buf, dpi->len, dpi->opaque);
4359 dpi->len = 0;
4360 dpi->flush_count++;
4366 d_append_char (struct d_print_info *dpi, char c)
4368 if (dpi->len == sizeof (dpi->buf) - 1)
4369 d_print_flush (dpi);
4371 dpi->buf[dpi->len++] = c;
4372 dpi->last_char = c;
4376 d_append_buffer (struct d_print_info *dpi, const char *s, size_t l)
4381 d_append_char (dpi, s[i]);
4385 d_append_string (struct d_print_info *dpi, const char *s)
4387 d_append_buffer (dpi, s, strlen (s));
4391 d_append_num (struct d_print_info *dpi, int l)
4395 d_append_string (dpi, buf);
4399 d_last_char (struct d_print_info *dpi)
4401 return dpi->last_char;
4419 struct d_print_info dpi;
4421 d_print_init (&dpi, callback, opaque, dc);
4427 __extension__ struct d_saved_scope scopes[(dpi.num_saved_scopes > 0)
4428 ? dpi.num_saved_scopes : 1];
4429 __extension__ struct d_print_template temps[(dpi.num_copy_templates > 0)
4430 ? dpi.num_copy_templates : 1];
4432 dpi.saved_scopes = scopes;
4433 dpi.copy_templates = temps;
4435 dpi.saved_scopes = alloca (dpi.num_saved_scopes
4436 * sizeof (*dpi.saved_scopes));
4437 dpi.copy_templates = alloca (dpi.num_copy_templates
4438 * sizeof (*dpi.copy_templates));
4441 d_print_comp (&dpi, options, dc);
4444 d_print_flush (&dpi);
4446 return ! d_print_saw_error (&dpi);
4511 d_lookup_template_argument (struct d_print_info *dpi,
4514 if (dpi->templates == NULL)
4516 d_print_error (dpi);
4521 (d_right (dpi->templates->template_decl),
4528 d_find_pack (struct d_print_info *dpi,
4538 a = d_lookup_template_argument (dpi, dc);
4561 return d_find_pack (dpi, dc->u.s_extended_operator.name);
4563 return d_find_pack (dpi, dc->u.s_ctor.name);
4565 return d_find_pack (dpi, dc->u.s_dtor.name);
4568 a = d_find_pack (dpi, d_left (dc));
4571 return d_find_pack (dpi, d_right (dc));
4594 d_args_length (struct d_print_info *dpi, const struct demangle_component *dc)
4605 struct demangle_component *a = d_find_pack (dpi, d_left (elt));
4618 d_print_subexpr (struct d_print_info *dpi, int options,
4628 d_append_char (dpi, '(');
4629 d_print_comp (dpi, options, dc);
4631 d_append_char (dpi, ')');
4637 d_save_scope (struct d_print_info *dpi,
4643 if (dpi->next_saved_scope >= dpi->num_saved_scopes)
4645 d_print_error (dpi);
4648 scope = &dpi->saved_scopes[dpi->next_saved_scope];
4649 dpi->next_saved_scope++;
4654 for (src = dpi->templates; src != NULL; src = src->next)
4658 if (dpi->next_copy_template >= dpi->num_copy_templates)
4660 d_print_error (dpi);
4663 dst = &dpi->copy_templates[dpi->next_copy_template];
4664 dpi->next_copy_template++;
4678 d_get_saved_scope (struct d_print_info *dpi,
4683 for (i = 0; i < dpi->next_saved_scope; i++)
4684 if (dpi->saved_scopes[i].container == container)
4685 return &dpi->saved_scopes[i];
4694 d_maybe_print_fold_expression (struct d_print_info *dpi, int options,
4715 save_idx = dpi->pack_index;
4716 dpi->pack_index = -1;
4722 d_append_string (dpi, "(...");
4723 d_print_expr_op (dpi, options, operator_);
4724 d_print_subexpr (dpi, options, op1);
4725 d_append_char (dpi, ')');
4730 d_append_char (dpi, '(');
4731 d_print_subexpr (dpi, options, op1);
4732 d_print_expr_op (dpi, options, operator_);
4733 d_append_string (dpi, "...)");
4740 d_append_char (dpi, '(');
4741 d_print_subexpr (dpi, options, op1);
4742 d_print_expr_op (dpi, options, operator_);
4743 d_append_string (dpi, "...");
4744 d_print_expr_op (dpi, options, operator_);
4745 d_print_subexpr (dpi, options, op2);
4746 d_append_char (dpi, ')');
4750 dpi->pack_index = save_idx;
4773 d_maybe_print_designated_init (struct d_print_info *dpi, int options,
4786 d_append_char (dpi, '.');
4788 d_append_char (dpi, '[');
4790 d_print_comp (dpi, options, op1);
4793 d_append_string (dpi, " ... ");
4794 d_print_comp (dpi, options, d_left (op2));
4798 d_append_char (dpi, ']');
4802 d_print_comp (dpi, options, op2);
4806 d_append_char (dpi, '=');
4807 d_print_subexpr (dpi, options, op2);
4815 d_print_comp_inner (struct d_print_info *dpi, int options,
4831 d_print_error (dpi);
4834 if (d_print_saw_error (dpi))
4841 d_append_buffer (dpi, dc->u.s_name.s, dc->u.s_name.len);
4843 d_print_java_identifier (dpi, dc->u.s_name.s, dc->u.s_name.len);
4847 d_print_comp (dpi, options, d_left (dc));
4848 d_append_string (dpi, "[abi:");
4849 d_print_comp (dpi, options, d_right (dc));
4850 d_append_char (dpi, ']');
4855 d_print_comp (dpi, options, d_left (dc));
4857 d_append_string (dpi, "::");
4859 d_append_char (dpi, '.');
4864 d_append_string (dpi, "{default arg#");
4865 d_append_num (dpi, local_name->u.s_unary_num.num + 1);
4866 d_append_string (dpi, "}::");
4869 d_print_comp (dpi, options, local_name);
4884 hold_modifiers = dpi->modifiers;
4885 dpi->modifiers = 0;
4892 d_print_error (dpi);
4896 adpm[i].next = dpi->modifiers;
4897 dpi->modifiers = &adpm[i];
4900 adpm[i].templates = dpi->templates;
4911 d_print_error (dpi);
4929 d_print_error (dpi);
4935 dpi->modifiers = &adpm[i];
4939 adpm[i - 1].templates = dpi->templates;
4946 d_print_error (dpi);
4955 dpt.next = dpi->templates;
4956 dpi->templates = &dpt;
4960 d_print_comp (dpi, options, d_right (dc));
4963 dpi->templates = dpt.next;
4972 d_append_char (dpi, ' ');
4973 d_print_mod (dpi, options, adpm[i].mod);
4977 dpi->modifiers = hold_modifiers;
4990 hold_current = dpi->current_template;
4991 dpi->current_template = dc;
4997 hold_dpm = dpi->modifiers;
4998 dpi->modifiers = NULL;
5010 d_print_comp (dpi, options, d_right (dc));
5011 d_append_string (dpi, "[]");
5015 d_print_comp (dpi, options, dcl);
5016 if (d_last_char (dpi) == '<')
5017 d_append_char (dpi, ' ');
5018 d_append_char (dpi, '<');
5019 d_print_comp (dpi, options, d_right (dc));
5022 if (d_last_char (dpi) == '>')
5023 d_append_char (dpi, ' ');
5024 d_append_char (dpi, '>');
5027 dpi->modifiers = hold_dpm;
5028 dpi->current_template = hold_current;
5034 if (dpi->is_lambda_arg)
5039 d_append_buffer (dpi, "auto:", 5);
5040 d_append_num (dpi, dc->u.s_number.number + 1);
5045 struct demangle_component *a = d_lookup_template_argument (dpi, dc);
5048 a = d_index_template_argument (a, dpi->pack_index);
5052 d_print_error (dpi);
5061 hold_dpt = dpi->templates;
5062 dpi->templates = hold_dpt->next;
5064 d_print_comp (dpi, options, a);
5066 dpi->templates = hold_dpt;
5071 d_append_string (dpi, "template parameter object for ");
5072 d_print_comp (dpi, options, d_left (dc));
5076 d_print_comp (dpi, options, dc->u.s_ctor.name);
5080 d_append_char (dpi, '~');
5081 d_print_comp (dpi, options, dc->u.s_dtor.name);
5085 d_append_string (dpi, "vtable for ");
5086 d_print_comp (dpi, options, d_left (dc));
5090 d_append_string (dpi, "VTT for ");
5091 d_print_comp (dpi, options, d_left (dc));
5095 d_append_string (dpi, "construction vtable for ");
5096 d_print_comp (dpi, options, d_left (dc));
5097 d_append_string (dpi, "-in-");
5098 d_print_comp (dpi, options, d_right (dc));
5102 d_append_string (dpi, "typeinfo for ");
5103 d_print_comp (dpi, options, d_left (dc));
5107 d_append_string (dpi, "typeinfo name for ");
5108 d_print_comp (dpi, options, d_left (dc));
5112 d_append_string (dpi, "typeinfo fn for ");
5113 d_print_comp (dpi, options, d_left (dc));
5117 d_append_string (dpi, "non-virtual thunk to ");
5118 d_print_comp (dpi, options, d_left (dc));
5122 d_append_string (dpi, "virtual thunk to ");
5123 d_print_comp (dpi, options, d_left (dc));
5127 d_append_string (dpi, "covariant return thunk to ");
5128 d_print_comp (dpi, options, d_left (dc));
5132 d_append_string (dpi, "java Class for ");
5133 d_print_comp (dpi, options, d_left (dc));
5137 d_append_string (dpi, "guard variable for ");
5138 d_print_comp (dpi, options, d_left (dc));
5142 d_append_string (dpi, "TLS init function for ");
5143 d_print_comp (dpi, options, d_left (dc));
5147 d_append_string (dpi, "TLS wrapper function for ");
5148 d_print_comp (dpi, options, d_left (dc));
5152 d_append_string (dpi, "reference temporary #");
5153 d_print_comp (dpi, options, d_right (dc));
5154 d_append_string (dpi, " for ");
5155 d_print_comp (dpi, options, d_left (dc));
5159 d_append_string (dpi, "hidden alias for ");
5160 d_print_comp (dpi, options, d_left (dc));
5164 d_append_string (dpi, "transaction clone for ");
5165 d_print_comp (dpi, options, d_left (dc));
5169 d_append_string (dpi, "non-transaction clone for ");
5170 d_print_comp (dpi, options, d_left (dc));
5174 d_append_buffer (dpi, dc->u.s_string.string, dc->u.s_string.len);
5187 for (pdpm = dpi->modifiers; pdpm != NULL; pdpm = pdpm->next)
5197 d_print_comp (dpi, options, d_left (dc));
5210 if (!dpi->is_lambda_arg
5213 struct d_saved_scope *scope = d_get_saved_scope (dpi, sub);
5222 d_save_scope (dpi, sub);
5223 if (d_print_saw_error (dpi))
5234 for (dcse = dpi->component_stack; dcse != NULL;
5239 && dcse != dpi->component_stack))
5248 saved_templates = dpi->templates;
5249 dpi->templates = scope->templates;
5254 a = d_lookup_template_argument (dpi, sub);
5256 a = d_index_template_argument (a, dpi->pack_index);
5261 dpi->templates = saved_templates;
5263 d_print_error (dpi);
5288 dpm.next = dpi->modifiers;
5289 dpi->modifiers = &dpm;
5292 dpm.templates = dpi->templates;
5297 d_print_comp (dpi, options, mod_inner);
5302 d_print_mod (dpi, options, dc);
5304 dpi->modifiers = dpm.next;
5307 dpi->templates = saved_templates;
5314 d_append_buffer (dpi, dc->u.s_builtin.type->name,
5317 d_append_buffer (dpi, dc->u.s_builtin.type->java_name,
5322 d_print_comp (dpi, options, d_left (dc));
5328 d_print_function_type (dpi,
5330 dc, dpi->modifiers);
5334 d_print_comp (dpi, options & ~(DMGL_RET_POSTFIX | DMGL_RET_DROP),
5342 dpm.next = dpi->modifiers;
5343 dpi->modifiers = &dpm;
5346 dpm.templates = dpi->templates;
5348 d_print_comp (dpi, options & ~(DMGL_RET_POSTFIX | DMGL_RET_DROP),
5351 dpi->modifiers = dpm.next;
5359 d_append_char (dpi, ' ');
5363 d_print_function_type (dpi,
5365 dc, dpi->modifiers);
5385 hold_modifiers = dpi->modifiers;
5388 dpi->modifiers = &adpm[0];
5391 adpm[0].templates = dpi->templates;
5404 d_print_error (dpi);
5409 adpm[i].next = dpi->modifiers;
5410 dpi->modifiers = &adpm[i];
5418 d_print_comp (dpi, options, d_right (dc));
5420 dpi->modifiers = hold_modifiers;
5428 d_print_mod (dpi, options, adpm[i].mod);
5431 d_print_array_type (dpi, options, dc, dpi->modifiers);
5441 dpm.next = dpi->modifiers;
5442 dpi->modifiers = &dpm;
5445 dpm.templates = dpi->templates;
5447 d_print_comp (dpi, options, d_right (dc));
5452 d_print_mod (dpi, options, dc);
5454 dpi->modifiers = dpm.next;
5461 d_append_string (dpi, "_Sat ");
5466 d_print_comp (dpi, options, dc->u.s_fixed.length);
5467 d_append_char (dpi, ' ');
5470 d_append_string (dpi, "_Accum");
5472 d_append_string (dpi, "_Fract");
5478 d_print_comp (dpi, options, d_left (dc));
5484 dpi->len -= 2 wouldn't work. */
5485 if (dpi->len >= sizeof (dpi->buf) - 2)
5486 d_print_flush (dpi);
5487 d_append_string (dpi, ", ");
5488 len = dpi->len;
5489 flush_count = dpi->flush_count;
5490 d_print_comp (dpi, options, d_right (dc));
5493 if (dpi->flush_count == flush_count && dpi->len == len)
5494 dpi->len -= 2;
5504 d_print_comp (dpi, options, type);
5505 d_append_char (dpi, '{');
5506 d_print_comp (dpi, options, list);
5507 d_append_char (dpi, '}');
5516 d_append_string (dpi, "operator");
5519 d_append_char (dpi, ' ');
5523 d_append_buffer (dpi, op->name, len);
5528 d_append_string (dpi, "operator ");
5529 d_print_comp (dpi, options, dc->u.s_extended_operator.name);
5533 d_append_string (dpi, "operator ");
5534 d_print_conversion (dpi, options, dc);
5538 d_print_expr_op (dpi, options, d_left (dc));
5563 d_print_subexpr (dpi, options, operand);
5564 d_print_expr_op (dpi, options, op);
5572 struct demangle_component *a = d_find_pack (dpi, operand);
5574 d_append_num (dpi, len);
5579 int len = d_args_length (dpi, operand);
5580 d_append_num (dpi, len);
5585 d_print_expr_op (dpi, options, op);
5588 d_append_char (dpi, '(');
5589 d_print_cast (dpi, options, op);
5590 d_append_char (dpi, ')');
5594 d_print_comp (dpi, options, operand);
5598 d_append_char (dpi, '(');
5599 d_print_comp (dpi, options, operand);
5600 d_append_char (dpi, ')');
5603 d_print_subexpr (dpi, options, operand);
5610 d_print_error (dpi);
5616 d_print_expr_op (dpi, options, d_left (dc));
5617 d_append_char (dpi, '<');
5618 d_print_comp (dpi, options, d_left (d_right (dc)));
5619 d_append_string (dpi, ">(");
5620 d_print_comp (dpi, options, d_right (d_right (dc)));
5621 d_append_char (dpi, ')');
5625 if (d_maybe_print_fold_expression (dpi, options, dc))
5628 if (d_maybe_print_designated_init (dpi, options, dc))
5637 d_append_char (dpi, '(');
5649 d_print_error (dpi);
5650 d_print_subexpr (dpi, options, d_left (func));
5653 d_print_subexpr (dpi, options, d_left (d_right (dc)));
5656 d_append_char (dpi, '[');
5657 d_print_comp (dpi, options, d_right (d_right (dc)));
5658 d_append_char (dpi, ']');
5663 d_print_expr_op (dpi, options, d_left (dc));
5664 d_print_subexpr (dpi, options, d_right (d_right (dc)));
5670 d_append_char (dpi, ')');
5676 d_print_error (dpi);
5683 d_print_error (dpi);
5686 if (d_maybe_print_fold_expression (dpi, options, dc))
5688 if (d_maybe_print_designated_init (dpi, options, dc))
5698 d_print_subexpr (dpi, options, first);
5699 d_print_expr_op (dpi, options, op);
5700 d_print_subexpr (dpi, options, second);
5701 d_append_string (dpi, " : ");
5702 d_print_subexpr (dpi, options, third);
5706 d_append_string (dpi, "new ");
5709 d_print_subexpr (dpi, options, first);
5710 d_append_char (dpi, ' ');
5712 d_print_comp (dpi, options, second);
5714 d_print_subexpr (dpi, options, third);
5722 d_print_error (dpi);
5746 d_append_char (dpi, '-');
5747 d_print_comp (dpi, options, d_right (dc));
5753 d_append_char (dpi, 'u');
5756 d_append_char (dpi, 'l');
5759 d_append_string (dpi, "ul");
5762 d_append_string (dpi, "ll");
5765 d_append_string (dpi, "ull");
5780 d_append_string (dpi, "false");
5783 d_append_string (dpi, "true");
5796 d_append_char (dpi, '(');
5797 d_print_comp (dpi, options, d_left (dc));
5798 d_append_char (dpi, ')');
5800 d_append_char (dpi, '-');
5802 d_append_char (dpi, '[');
5803 d_print_comp (dpi, options, d_right (dc));
5805 d_append_char (dpi, ']');
5810 d_print_comp (dpi, options, d_left (dc));
5811 d_append_char (dpi, '(');
5812 d_print_comp (dpi, options, d_right (dc));
5813 d_append_char (dpi, ')');
5817 d_append_num (dpi, dc->u.s_number.number);
5821 d_append_string (dpi, "java resource ");
5822 d_print_comp (dpi, options, d_left (dc));
5826 d_print_comp (dpi, options, d_left (dc));
5827 d_print_comp (dpi, options, d_right (dc));
5831 d_append_char (dpi, dc->u.s_character.character);
5835 d_append_string (dpi, "decltype (");
5836 d_print_comp (dpi, options, d_left (dc));
5837 d_append_char (dpi, ')');
5844 struct demangle_component *a = d_find_pack (dpi, d_left (dc));
5850 d_print_subexpr (dpi, options, d_left (dc));
5851 d_append_string (dpi, "...");
5859 dpi->pack_index = i;
5860 d_print_comp (dpi, options, dc);
5862 d_append_string (dpi, ", ");
5871 d_append_string (dpi, "this");
5874 d_append_string (dpi, "{parm#");
5875 d_append_num (dpi, num);
5876 d_append_char (dpi, '}');
5882 d_append_string (dpi, "global constructors keyed to ");
5883 d_print_comp (dpi, options, dc->u.s_binary.left);
5887 d_append_string (dpi, "global destructors keyed to ");
5888 d_print_comp (dpi, options, dc->u.s_binary.left);
5892 d_append_string (dpi, "{lambda(");
5895 dpi->is_lambda_arg++;
5896 d_print_comp (dpi, options, dc->u.s_unary_num.sub);
5897 dpi->is_lambda_arg--;
5898 d_append_string (dpi, ")#");
5899 d_append_num (dpi, dc->u.s_unary_num.num + 1);
5900 d_append_char (dpi, '}');
5904 d_append_string (dpi, "{unnamed type#");
5905 d_append_num (dpi, dc->u.s_number.number + 1);
5906 d_append_char (dpi, '}');
5910 d_print_comp (dpi, options, d_left (dc));
5911 d_append_string (dpi, " [clone ");
5912 d_print_comp (dpi, options, d_right (dc));
5913 d_append_char (dpi, ']');
5917 d_print_error (dpi);
5923 d_print_comp (struct d_print_info *dpi, int options,
5927 if (dc == NULL || dc->d_printing > 1 || dpi->recursion > MAX_RECURSION_COUNT)
5929 d_print_error (dpi);
5934 dpi->recursion++;
5937 self.parent = dpi->component_stack;
5938 dpi->component_stack = &self;
5940 d_print_comp_inner (dpi, options, dc);
5942 dpi->component_stack = self.parent;
5944 dpi->recursion--;
5953 d_print_java_identifier (struct d_print_info *dpi, const char *name, int len)
5989 d_append_char (dpi, c);
5995 d_append_char (dpi, *p);
6003 d_print_mod_list (struct d_print_info *dpi, int options,
6008 if (mods == NULL || d_print_saw_error (dpi))
6015 d_print_mod_list (dpi, options, mods->next, suffix);
6021 hold_dpt = dpi->templates;
6022 dpi->templates = mods->templates;
6026 d_print_function_type (dpi, options, mods->mod, mods->next);
6027 dpi->templates = hold_dpt;
6032 d_print_array_type (dpi, options, mods->mod, mods->next);
6033 dpi->templates = hold_dpt;
6046 hold_modifiers = dpi->modifiers;
6047 dpi->modifiers = NULL;
6048 d_print_comp (dpi, options, d_left (mods->mod));
6049 dpi->modifiers = hold_modifiers;
6052 d_append_string (dpi, "::");
6054 d_append_char (dpi, '.');
6060 d_append_string (dpi, "{default arg#");
6061 d_append_num (dpi, dc->u.s_unary_num.num + 1);
6062 d_append_string (dpi, "}::");
6069 d_print_comp (dpi, options, dc);
6071 dpi->templates = hold_dpt;
6075 d_print_mod (dpi, options, mods->mod);
6077 dpi->templates = hold_dpt;
6079 d_print_mod_list (dpi, options, mods->next, suffix);
6085 d_print_mod (struct d_print_info *dpi, int options,
6092 d_append_string (dpi, " restrict");
6096 d_append_string (dpi, " volatile");
6100 d_append_string (dpi, " const");
6103 d_append_string (dpi, " transaction_safe");
6106 d_append_string (dpi, " noexcept");
6109 d_append_char (dpi, '(');
6110 d_print_comp (dpi, options, d_right (mod));
6111 d_append_char (dpi, ')');
6115 d_append_string (dpi, " throw");
6118 d_append_char (dpi, '(');
6119 d_print_comp (dpi, options, d_right (mod));
6120 d_append_char (dpi, ')');
6124 d_append_char (dpi, ' ');
6125 d_print_comp (dpi, options, d_right (mod));
6130 d_append_char (dpi, '*');
6134 d_append_char (dpi, ' ');
6137 d_append_char (dpi, '&');
6140 d_append_char (dpi, ' ');
6143 d_append_string (dpi, "&&");
6146 d_append_string (dpi, " _Complex");
6149 d_append_string (dpi, " _Imaginary");
6152 if (d_last_char (dpi) != '(')
6153 d_append_char (dpi, ' ');
6154 d_print_comp (dpi, options, d_left (mod));
6155 d_append_string (dpi, "::*");
6158 d_print_comp (dpi, options, d_left (mod));
6161 d_append_string (dpi, " __vector(");
6162 d_print_comp (dpi, options, d_left (mod));
6163 d_append_char (dpi, ')');
6169 d_print_comp (dpi, options, mod);
6177 d_print_function_type (struct d_print_info *dpi, int options,
6223 if (d_last_char (dpi) != '('
6224 && d_last_char (dpi) != '*')
6227 if (need_space && d_last_char (dpi) != ' ')
6228 d_append_char (dpi, ' ');
6229 d_append_char (dpi, '(');
6232 hold_modifiers = dpi->modifiers;
6233 dpi->modifiers = NULL;
6235 d_print_mod_list (dpi, options, mods, 0);
6238 d_append_char (dpi, ')');
6240 d_append_char (dpi, '(');
6243 d_print_comp (dpi, options, d_right (dc));
6245 d_append_char (dpi, ')');
6247 d_print_mod_list (dpi, options, mods, 1);
6249 dpi->modifiers = hold_modifiers;
6255 d_print_array_type (struct d_print_info *dpi, int options,
6287 d_append_string (dpi, " (");
6289 d_print_mod_list (dpi, options, mods, 0);
6292 d_append_char (dpi, ')');
6296 d_append_char (dpi, ' ');
6298 d_append_char (dpi, '[');
6301 d_print_comp (dpi, options, d_left (dc));
6303 d_append_char (dpi, ']');
6309 d_print_expr_op (struct d_print_info *dpi, int options,
6313 d_append_buffer (dpi, dc->u.s_operator.op->name,
6316 d_print_comp (dpi, options, dc);
6322 d_print_cast (struct d_print_info *dpi, int options,
6325 d_print_comp (dpi, options, d_left (dc));
6331 d_print_conversion (struct d_print_info *dpi, int options,
6338 if (dpi->current_template != NULL)
6340 dpt.next = dpi->templates;
6341 dpi->templates = &dpt;
6342 dpt.template_decl = dpi->current_template;
6347 d_print_comp (dpi, options, d_left (dc));
6348 if (dpi->current_template != NULL)
6349 dpi->templates = dpt.next;
6353 d_print_comp (dpi, options, d_left (d_left (dc)));
6358 if (dpi->current_template != NULL)
6359 dpi->templates = dpt.next;
6361 if (d_last_char (dpi) == '<')
6362 d_append_char (dpi, ' ');
6363 d_append_char (dpi, '<');
6364 d_print_comp (dpi, options, d_right (d_left (dc)));
6367 if (d_last_char (dpi) == '>')
6368 d_append_char (dpi, ' ');
6369 d_append_char (dpi, '>');