Lines Matching defs:dpi

4097 d_count_templates_scopes (struct d_print_info *dpi,
4100 if (dc == NULL || dc->d_counting > 1 || dpi->recursion > MAX_RECURSION_COUNT)
4119 dpi->num_copy_templates++;
4125 dpi->num_saved_scopes++;
4191 if (dpi->recursion > DEMANGLE_RECURSION_LIMIT)
4196 ++ dpi->recursion;
4197 d_count_templates_scopes (dpi, d_left (dc));
4198 d_count_templates_scopes (dpi, d_right (dc));
4199 -- dpi->recursion;
4203 d_count_templates_scopes (dpi, dc->u.s_ctor.name);
4207 d_count_templates_scopes (dpi, dc->u.s_dtor.name);
4211 d_count_templates_scopes (dpi, dc->u.s_extended_operator.name);
4215 d_count_templates_scopes (dpi, dc->u.s_fixed.length);
4220 d_count_templates_scopes (dpi, d_left (dc));
4225 d_count_templates_scopes (dpi, dc->u.s_unary_num.sub);
4233 d_print_init (struct d_print_info *dpi, demangle_callbackref callback,
4236 dpi->len = 0;
4237 dpi->last_char = '\0';
4238 dpi->templates = NULL;
4239 dpi->modifiers = NULL;
4240 dpi->pack_index = 0;
4241 dpi->flush_count = 0;
4243 dpi->callback = callback;
4244 dpi->opaque = opaque;
4246 dpi->demangle_failure = 0;
4247 dpi->recursion = 0;
4248 dpi->is_lambda_arg = 0;
4250 dpi->component_stack = NULL;
4252 dpi->saved_scopes = NULL;
4253 dpi->next_saved_scope = 0;
4254 dpi->num_saved_scopes = 0;
4256 dpi->copy_templates = NULL;
4257 dpi->next_copy_template = 0;
4258 dpi->num_copy_templates = 0;
4260 d_count_templates_scopes (dpi, dc);
4264 if (dpi->recursion < DEMANGLE_RECURSION_LIMIT)
4265 dpi->recursion = 0;
4266 dpi->num_copy_templates *= dpi->num_saved_scopes;
4268 dpi->current_template = NULL;
4274 d_print_error (struct d_print_info *dpi)
4276 dpi->demangle_failure = 1;
4280 d_print_saw_error (struct d_print_info *dpi)
4282 return dpi->demangle_failure != 0;
4288 d_print_flush (struct d_print_info *dpi)
4290 dpi->buf[dpi->len] = '\0';
4291 dpi->callback (dpi->buf, dpi->len, dpi->opaque);
4292 dpi->len = 0;
4293 dpi->flush_count++;
4299 d_append_char (struct d_print_info *dpi, char c)
4301 if (dpi->len == sizeof (dpi->buf) - 1)
4302 d_print_flush (dpi);
4304 dpi->buf[dpi->len++] = c;
4305 dpi->last_char = c;
4309 d_append_buffer (struct d_print_info *dpi, const char *s, size_t l)
4314 d_append_char (dpi, s[i]);
4318 d_append_string (struct d_print_info *dpi, const char *s)
4320 d_append_buffer (dpi, s, strlen (s));
4324 d_append_num (struct d_print_info *dpi, int l)
4328 d_append_string (dpi, buf);
4332 d_last_char (struct d_print_info *dpi)
4334 return dpi->last_char;
4352 struct d_print_info dpi;
4354 d_print_init (&dpi, callback, opaque, dc);
4360 __extension__ struct d_saved_scope scopes[(dpi.num_saved_scopes > 0)
4361 ? dpi.num_saved_scopes : 1];
4362 __extension__ struct d_print_template temps[(dpi.num_copy_templates > 0)
4363 ? dpi.num_copy_templates : 1];
4365 dpi.saved_scopes = scopes;
4366 dpi.copy_templates = temps;
4368 dpi.saved_scopes = alloca (dpi.num_saved_scopes
4369 * sizeof (*dpi.saved_scopes));
4370 dpi.copy_templates = alloca (dpi.num_copy_templates
4371 * sizeof (*dpi.copy_templates));
4374 d_print_comp (&dpi, options, dc);
4377 d_print_flush (&dpi);
4379 return ! d_print_saw_error (&dpi);
4444 d_lookup_template_argument (struct d_print_info *dpi,
4447 if (dpi->templates == NULL)
4449 d_print_error (dpi);
4454 (d_right (dpi->templates->template_decl),
4461 d_find_pack (struct d_print_info *dpi,
4471 a = d_lookup_template_argument (dpi, dc);
4494 return d_find_pack (dpi, dc->u.s_extended_operator.name);
4496 return d_find_pack (dpi, dc->u.s_ctor.name);
4498 return d_find_pack (dpi, dc->u.s_dtor.name);
4501 a = d_find_pack (dpi, d_left (dc));
4504 return d_find_pack (dpi, d_right (dc));
4527 d_args_length (struct d_print_info *dpi, const struct demangle_component *dc)
4538 struct demangle_component *a = d_find_pack (dpi, d_left (elt));
4551 d_print_subexpr (struct d_print_info *dpi, int options,
4561 d_append_char (dpi, '(');
4562 d_print_comp (dpi, options, dc);
4564 d_append_char (dpi, ')');
4570 d_save_scope (struct d_print_info *dpi,
4576 if (dpi->next_saved_scope >= dpi->num_saved_scopes)
4578 d_print_error (dpi);
4581 scope = &dpi->saved_scopes[dpi->next_saved_scope];
4582 dpi->next_saved_scope++;
4587 for (src = dpi->templates; src != NULL; src = src->next)
4591 if (dpi->next_copy_template >= dpi->num_copy_templates)
4593 d_print_error (dpi);
4596 dst = &dpi->copy_templates[dpi->next_copy_template];
4597 dpi->next_copy_template++;
4611 d_get_saved_scope (struct d_print_info *dpi,
4616 for (i = 0; i < dpi->next_saved_scope; i++)
4617 if (dpi->saved_scopes[i].container == container)
4618 return &dpi->saved_scopes[i];
4627 d_maybe_print_fold_expression (struct d_print_info *dpi, int options,
4648 save_idx = dpi->pack_index;
4649 dpi->pack_index = -1;
4655 d_append_string (dpi, "(...");
4656 d_print_expr_op (dpi, options, operator_);
4657 d_print_subexpr (dpi, options, op1);
4658 d_append_char (dpi, ')');
4663 d_append_char (dpi, '(');
4664 d_print_subexpr (dpi, options, op1);
4665 d_print_expr_op (dpi, options, operator_);
4666 d_append_string (dpi, "...)");
4673 d_append_char (dpi, '(');
4674 d_print_subexpr (dpi, options, op1);
4675 d_print_expr_op (dpi, options, operator_);
4676 d_append_string (dpi, "...");
4677 d_print_expr_op (dpi, options, operator_);
4678 d_print_subexpr (dpi, options, op2);
4679 d_append_char (dpi, ')');
4683 dpi->pack_index = save_idx;
4706 d_maybe_print_designated_init (struct d_print_info *dpi, int options,
4719 d_append_char (dpi, '.');
4721 d_append_char (dpi, '[');
4723 d_print_comp (dpi, options, op1);
4726 d_append_string (dpi, " ... ");
4727 d_print_comp (dpi, options, d_left (op2));
4731 d_append_char (dpi, ']');
4735 d_print_comp (dpi, options, op2);
4739 d_append_char (dpi, '=');
4740 d_print_subexpr (dpi, options, op2);
4748 d_print_comp_inner (struct d_print_info *dpi, int options,
4764 d_print_error (dpi);
4767 if (d_print_saw_error (dpi))
4774 d_append_buffer (dpi, dc->u.s_name.s, dc->u.s_name.len);
4776 d_print_java_identifier (dpi, dc->u.s_name.s, dc->u.s_name.len);
4780 d_print_comp (dpi, options, d_left (dc));
4781 d_append_string (dpi, "[abi:");
4782 d_print_comp (dpi, options, d_right (dc));
4783 d_append_char (dpi, ']');
4788 d_print_comp (dpi, options, d_left (dc));
4790 d_append_string (dpi, "::");
4792 d_append_char (dpi, '.');
4797 d_append_string (dpi, "{default arg#");
4798 d_append_num (dpi, local_name->u.s_unary_num.num + 1);
4799 d_append_string (dpi, "}::");
4802 d_print_comp (dpi, options, local_name);
4817 hold_modifiers = dpi->modifiers;
4818 dpi->modifiers = 0;
4825 d_print_error (dpi);
4829 adpm[i].next = dpi->modifiers;
4830 dpi->modifiers = &adpm[i];
4833 adpm[i].templates = dpi->templates;
4844 d_print_error (dpi);
4862 d_print_error (dpi);
4868 dpi->modifiers = &adpm[i];
4872 adpm[i - 1].templates = dpi->templates;
4879 d_print_error (dpi);
4888 dpt.next = dpi->templates;
4889 dpi->templates = &dpt;
4893 d_print_comp (dpi, options, d_right (dc));
4896 dpi->templates = dpt.next;
4905 d_append_char (dpi, ' ');
4906 d_print_mod (dpi, options, adpm[i].mod);
4910 dpi->modifiers = hold_modifiers;
4923 hold_current = dpi->current_template;
4924 dpi->current_template = dc;
4930 hold_dpm = dpi->modifiers;
4931 dpi->modifiers = NULL;
4943 d_print_comp (dpi, options, d_right (dc));
4944 d_append_string (dpi, "[]");
4948 d_print_comp (dpi, options, dcl);
4949 if (d_last_char (dpi) == '<')
4950 d_append_char (dpi, ' ');
4951 d_append_char (dpi, '<');
4952 d_print_comp (dpi, options, d_right (dc));
4955 if (d_last_char (dpi) == '>')
4956 d_append_char (dpi, ' ');
4957 d_append_char (dpi, '>');
4960 dpi->modifiers = hold_dpm;
4961 dpi->current_template = hold_current;
4967 if (dpi->is_lambda_arg)
4972 d_append_buffer (dpi, "auto:", 5);
4973 d_append_num (dpi, dc->u.s_number.number + 1);
4978 struct demangle_component *a = d_lookup_template_argument (dpi, dc);
4981 a = d_index_template_argument (a, dpi->pack_index);
4985 d_print_error (dpi);
4994 hold_dpt = dpi->templates;
4995 dpi->templates = hold_dpt->next;
4997 d_print_comp (dpi, options, a);
4999 dpi->templates = hold_dpt;
5004 d_append_string (dpi, "template parameter object for ");
5005 d_print_comp (dpi, options, d_left (dc));
5009 d_print_comp (dpi, options, dc->u.s_ctor.name);
5013 d_append_char (dpi, '~');
5014 d_print_comp (dpi, options, dc->u.s_dtor.name);
5018 d_append_string (dpi, "vtable for ");
5019 d_print_comp (dpi, options, d_left (dc));
5023 d_append_string (dpi, "VTT for ");
5024 d_print_comp (dpi, options, d_left (dc));
5028 d_append_string (dpi, "construction vtable for ");
5029 d_print_comp (dpi, options, d_left (dc));
5030 d_append_string (dpi, "-in-");
5031 d_print_comp (dpi, options, d_right (dc));
5035 d_append_string (dpi, "typeinfo for ");
5036 d_print_comp (dpi, options, d_left (dc));
5040 d_append_string (dpi, "typeinfo name for ");
5041 d_print_comp (dpi, options, d_left (dc));
5045 d_append_string (dpi, "typeinfo fn for ");
5046 d_print_comp (dpi, options, d_left (dc));
5050 d_append_string (dpi, "non-virtual thunk to ");
5051 d_print_comp (dpi, options, d_left (dc));
5055 d_append_string (dpi, "virtual thunk to ");
5056 d_print_comp (dpi, options, d_left (dc));
5060 d_append_string (dpi, "covariant return thunk to ");
5061 d_print_comp (dpi, options, d_left (dc));
5065 d_append_string (dpi, "java Class for ");
5066 d_print_comp (dpi, options, d_left (dc));
5070 d_append_string (dpi, "guard variable for ");
5071 d_print_comp (dpi, options, d_left (dc));
5075 d_append_string (dpi, "TLS init function for ");
5076 d_print_comp (dpi, options, d_left (dc));
5080 d_append_string (dpi, "TLS wrapper function for ");
5081 d_print_comp (dpi, options, d_left (dc));
5085 d_append_string (dpi, "reference temporary #");
5086 d_print_comp (dpi, options, d_right (dc));
5087 d_append_string (dpi, " for ");
5088 d_print_comp (dpi, options, d_left (dc));
5092 d_append_string (dpi, "hidden alias for ");
5093 d_print_comp (dpi, options, d_left (dc));
5097 d_append_string (dpi, "transaction clone for ");
5098 d_print_comp (dpi, options, d_left (dc));
5102 d_append_string (dpi, "non-transaction clone for ");
5103 d_print_comp (dpi, options, d_left (dc));
5107 d_append_buffer (dpi, dc->u.s_string.string, dc->u.s_string.len);
5120 for (pdpm = dpi->modifiers; pdpm != NULL; pdpm = pdpm->next)
5130 d_print_comp (dpi, options, d_left (dc));
5143 if (!dpi->is_lambda_arg
5146 struct d_saved_scope *scope = d_get_saved_scope (dpi, sub);
5155 d_save_scope (dpi, sub);
5156 if (d_print_saw_error (dpi))
5167 for (dcse = dpi->component_stack; dcse != NULL;
5172 && dcse != dpi->component_stack))
5181 saved_templates = dpi->templates;
5182 dpi->templates = scope->templates;
5187 a = d_lookup_template_argument (dpi, sub);
5189 a = d_index_template_argument (a, dpi->pack_index);
5194 dpi->templates = saved_templates;
5196 d_print_error (dpi);
5221 dpm.next = dpi->modifiers;
5222 dpi->modifiers = &dpm;
5225 dpm.templates = dpi->templates;
5230 d_print_comp (dpi, options, mod_inner);
5235 d_print_mod (dpi, options, dc);
5237 dpi->modifiers = dpm.next;
5240 dpi->templates = saved_templates;
5247 d_append_buffer (dpi, dc->u.s_builtin.type->name,
5250 d_append_buffer (dpi, dc->u.s_builtin.type->java_name,
5255 d_print_comp (dpi, options, d_left (dc));
5261 d_print_function_type (dpi,
5263 dc, dpi->modifiers);
5267 d_print_comp (dpi, options & ~(DMGL_RET_POSTFIX | DMGL_RET_DROP),
5275 dpm.next = dpi->modifiers;
5276 dpi->modifiers = &dpm;
5279 dpm.templates = dpi->templates;
5281 d_print_comp (dpi, options & ~(DMGL_RET_POSTFIX | DMGL_RET_DROP),
5284 dpi->modifiers = dpm.next;
5292 d_append_char (dpi, ' ');
5296 d_print_function_type (dpi,
5298 dc, dpi->modifiers);
5318 hold_modifiers = dpi->modifiers;
5321 dpi->modifiers = &adpm[0];
5324 adpm[0].templates = dpi->templates;
5337 d_print_error (dpi);
5342 adpm[i].next = dpi->modifiers;
5343 dpi->modifiers = &adpm[i];
5351 d_print_comp (dpi, options, d_right (dc));
5353 dpi->modifiers = hold_modifiers;
5361 d_print_mod (dpi, options, adpm[i].mod);
5364 d_print_array_type (dpi, options, dc, dpi->modifiers);
5374 dpm.next = dpi->modifiers;
5375 dpi->modifiers = &dpm;
5378 dpm.templates = dpi->templates;
5380 d_print_comp (dpi, options, d_right (dc));
5385 d_print_mod (dpi, options, dc);
5387 dpi->modifiers = dpm.next;
5394 d_append_string (dpi, "_Sat ");
5399 d_print_comp (dpi, options, dc->u.s_fixed.length);
5400 d_append_char (dpi, ' ');
5403 d_append_string (dpi, "_Accum");
5405 d_append_string (dpi, "_Fract");
5411 d_print_comp (dpi, options, d_left (dc));
5417 dpi->len -= 2 wouldn't work. */
5418 if (dpi->len >= sizeof (dpi->buf) - 2)
5419 d_print_flush (dpi);
5420 d_append_string (dpi, ", ");
5421 len = dpi->len;
5422 flush_count = dpi->flush_count;
5423 d_print_comp (dpi, options, d_right (dc));
5426 if (dpi->flush_count == flush_count && dpi->len == len)
5427 dpi->len -= 2;
5437 d_print_comp (dpi, options, type);
5438 d_append_char (dpi, '{');
5439 d_print_comp (dpi, options, list);
5440 d_append_char (dpi, '}');
5449 d_append_string (dpi, "operator");
5452 d_append_char (dpi, ' ');
5456 d_append_buffer (dpi, op->name, len);
5461 d_append_string (dpi, "operator ");
5462 d_print_comp (dpi, options, dc->u.s_extended_operator.name);
5466 d_append_string (dpi, "operator ");
5467 d_print_conversion (dpi, options, dc);
5471 d_print_expr_op (dpi, options, d_left (dc));
5496 d_print_subexpr (dpi, options, operand);
5497 d_print_expr_op (dpi, options, op);
5505 struct demangle_component *a = d_find_pack (dpi, operand);
5507 d_append_num (dpi, len);
5512 int len = d_args_length (dpi, operand);
5513 d_append_num (dpi, len);
5518 d_print_expr_op (dpi, options, op);
5521 d_append_char (dpi, '(');
5522 d_print_cast (dpi, options, op);
5523 d_append_char (dpi, ')');
5527 d_print_comp (dpi, options, operand);
5531 d_append_char (dpi, '(');
5532 d_print_comp (dpi, options, operand);
5533 d_append_char (dpi, ')');
5536 d_print_subexpr (dpi, options, operand);
5543 d_print_error (dpi);
5549 d_print_expr_op (dpi, options, d_left (dc));
5550 d_append_char (dpi, '<');
5551 d_print_comp (dpi, options, d_left (d_right (dc)));
5552 d_append_string (dpi, ">(");
5553 d_print_comp (dpi, options, d_right (d_right (dc)));
5554 d_append_char (dpi, ')');
5558 if (d_maybe_print_fold_expression (dpi, options, dc))
5561 if (d_maybe_print_designated_init (dpi, options, dc))
5570 d_append_char (dpi, '(');
5582 d_print_error (dpi);
5583 d_print_subexpr (dpi, options, d_left (func));
5586 d_print_subexpr (dpi, options, d_left (d_right (dc)));
5589 d_append_char (dpi, '[');
5590 d_print_comp (dpi, options, d_right (d_right (dc)));
5591 d_append_char (dpi, ']');
5596 d_print_expr_op (dpi, options, d_left (dc));
5597 d_print_subexpr (dpi, options, d_right (d_right (dc)));
5603 d_append_char (dpi, ')');
5609 d_print_error (dpi);
5616 d_print_error (dpi);
5619 if (d_maybe_print_fold_expression (dpi, options, dc))
5621 if (d_maybe_print_designated_init (dpi, options, dc))
5631 d_print_subexpr (dpi, options, first);
5632 d_print_expr_op (dpi, options, op);
5633 d_print_subexpr (dpi, options, second);
5634 d_append_string (dpi, " : ");
5635 d_print_subexpr (dpi, options, third);
5639 d_append_string (dpi, "new ");
5642 d_print_subexpr (dpi, options, first);
5643 d_append_char (dpi, ' ');
5645 d_print_comp (dpi, options, second);
5647 d_print_subexpr (dpi, options, third);
5655 d_print_error (dpi);
5679 d_append_char (dpi, '-');
5680 d_print_comp (dpi, options, d_right (dc));
5686 d_append_char (dpi, 'u');
5689 d_append_char (dpi, 'l');
5692 d_append_string (dpi, "ul");
5695 d_append_string (dpi, "ll");
5698 d_append_string (dpi, "ull");
5713 d_append_string (dpi, "false");
5716 d_append_string (dpi, "true");
5729 d_append_char (dpi, '(');
5730 d_print_comp (dpi, options, d_left (dc));
5731 d_append_char (dpi, ')');
5733 d_append_char (dpi, '-');
5735 d_append_char (dpi, '[');
5736 d_print_comp (dpi, options, d_right (dc));
5738 d_append_char (dpi, ']');
5743 d_append_num (dpi, dc->u.s_number.number);
5747 d_append_string (dpi, "java resource ");
5748 d_print_comp (dpi, options, d_left (dc));
5752 d_print_comp (dpi, options, d_left (dc));
5753 d_print_comp (dpi, options, d_right (dc));
5757 d_append_char (dpi, dc->u.s_character.character);
5761 d_append_string (dpi, "decltype (");
5762 d_print_comp (dpi, options, d_left (dc));
5763 d_append_char (dpi, ')');
5770 struct demangle_component *a = d_find_pack (dpi, d_left (dc));
5776 d_print_subexpr (dpi, options, d_left (dc));
5777 d_append_string (dpi, "...");
5785 dpi->pack_index = i;
5786 d_print_comp (dpi, options, dc);
5788 d_append_string (dpi, ", ");
5797 d_append_string (dpi, "this");
5800 d_append_string (dpi, "{parm#");
5801 d_append_num (dpi, num);
5802 d_append_char (dpi, '}');
5808 d_append_string (dpi, "global constructors keyed to ");
5809 d_print_comp (dpi, options, dc->u.s_binary.left);
5813 d_append_string (dpi, "global destructors keyed to ");
5814 d_print_comp (dpi, options, dc->u.s_binary.left);
5818 d_append_string (dpi, "{lambda(");
5821 dpi->is_lambda_arg++;
5822 d_print_comp (dpi, options, dc->u.s_unary_num.sub);
5823 dpi->is_lambda_arg--;
5824 d_append_string (dpi, ")#");
5825 d_append_num (dpi, dc->u.s_unary_num.num + 1);
5826 d_append_char (dpi, '}');
5830 d_append_string (dpi, "{unnamed type#");
5831 d_append_num (dpi, dc->u.s_number.number + 1);
5832 d_append_char (dpi, '}');
5836 d_print_comp (dpi, options, d_left (dc));
5837 d_append_string (dpi, " [clone ");
5838 d_print_comp (dpi, options, d_right (dc));
5839 d_append_char (dpi, ']');
5843 d_print_error (dpi);
5849 d_print_comp (struct d_print_info *dpi, int options,
5853 if (dc == NULL || dc->d_printing > 1 || dpi->recursion > MAX_RECURSION_COUNT)
5855 d_print_error (dpi);
5860 dpi->recursion++;
5863 self.parent = dpi->component_stack;
5864 dpi->component_stack = &self;
5866 d_print_comp_inner (dpi, options, dc);
5868 dpi->component_stack = self.parent;
5870 dpi->recursion--;
5879 d_print_java_identifier (struct d_print_info *dpi, const char *name, int len)
5915 d_append_char (dpi, c);
5921 d_append_char (dpi, *p);
5929 d_print_mod_list (struct d_print_info *dpi, int options,
5934 if (mods == NULL || d_print_saw_error (dpi))
5941 d_print_mod_list (dpi, options, mods->next, suffix);
5947 hold_dpt = dpi->templates;
5948 dpi->templates = mods->templates;
5952 d_print_function_type (dpi, options, mods->mod, mods->next);
5953 dpi->templates = hold_dpt;
5958 d_print_array_type (dpi, options, mods->mod, mods->next);
5959 dpi->templates = hold_dpt;
5972 hold_modifiers = dpi->modifiers;
5973 dpi->modifiers = NULL;
5974 d_print_comp (dpi, options, d_left (mods->mod));
5975 dpi->modifiers = hold_modifiers;
5978 d_append_string (dpi, "::");
5980 d_append_char (dpi, '.');
5986 d_append_string (dpi, "{default arg#");
5987 d_append_num (dpi, dc->u.s_unary_num.num + 1);
5988 d_append_string (dpi, "}::");
5995 d_print_comp (dpi, options, dc);
5997 dpi->templates = hold_dpt;
6001 d_print_mod (dpi, options, mods->mod);
6003 dpi->templates = hold_dpt;
6005 d_print_mod_list (dpi, options, mods->next, suffix);
6011 d_print_mod (struct d_print_info *dpi, int options,
6018 d_append_string (dpi, " restrict");
6022 d_append_string (dpi, " volatile");
6026 d_append_string (dpi, " const");
6029 d_append_string (dpi, " transaction_safe");
6032 d_append_string (dpi, " noexcept");
6035 d_append_char (dpi, '(');
6036 d_print_comp (dpi, options, d_right (mod));
6037 d_append_char (dpi, ')');
6041 d_append_string (dpi, " throw");
6044 d_append_char (dpi, '(');
6045 d_print_comp (dpi, options, d_right (mod));
6046 d_append_char (dpi, ')');
6050 d_append_char (dpi, ' ');
6051 d_print_comp (dpi, options, d_right (mod));
6056 d_append_char (dpi, '*');
6060 d_append_char (dpi, ' ');
6063 d_append_char (dpi, '&');
6066 d_append_char (dpi, ' ');
6069 d_append_string (dpi, "&&");
6072 d_append_string (dpi, " _Complex");
6075 d_append_string (dpi, " _Imaginary");
6078 if (d_last_char (dpi) != '(')
6079 d_append_char (dpi, ' ');
6080 d_print_comp (dpi, options, d_left (mod));
6081 d_append_string (dpi, "::*");
6084 d_print_comp (dpi, options, d_left (mod));
6087 d_append_string (dpi, " __vector(");
6088 d_print_comp (dpi, options, d_left (mod));
6089 d_append_char (dpi, ')');
6095 d_print_comp (dpi, options, mod);
6103 d_print_function_type (struct d_print_info *dpi, int options,
6149 if (d_last_char (dpi) != '('
6150 && d_last_char (dpi) != '*')
6153 if (need_space && d_last_char (dpi) != ' ')
6154 d_append_char (dpi, ' ');
6155 d_append_char (dpi, '(');
6158 hold_modifiers = dpi->modifiers;
6159 dpi->modifiers = NULL;
6161 d_print_mod_list (dpi, options, mods, 0);
6164 d_append_char (dpi, ')');
6166 d_append_char (dpi, '(');
6169 d_print_comp (dpi, options, d_right (dc));
6171 d_append_char (dpi, ')');
6173 d_print_mod_list (dpi, options, mods, 1);
6175 dpi->modifiers = hold_modifiers;
6181 d_print_array_type (struct d_print_info *dpi, int options,
6213 d_append_string (dpi, " (");
6215 d_print_mod_list (dpi, options, mods, 0);
6218 d_append_char (dpi, ')');
6222 d_append_char (dpi, ' ');
6224 d_append_char (dpi, '[');
6227 d_print_comp (dpi, options, d_left (dc));
6229 d_append_char (dpi, ']');
6235 d_print_expr_op (struct d_print_info *dpi, int options,
6239 d_append_buffer (dpi, dc->u.s_operator.op->name,
6242 d_print_comp (dpi, options, dc);
6248 d_print_cast (struct d_print_info *dpi, int options,
6251 d_print_comp (dpi, options, d_left (dc));
6257 d_print_conversion (struct d_print_info *dpi, int options,
6264 if (dpi->current_template != NULL)
6266 dpt.next = dpi->templates;
6267 dpi->templates = &dpt;
6268 dpt.template_decl = dpi->current_template;
6273 d_print_comp (dpi, options, d_left (dc));
6274 if (dpi->current_template != NULL)
6275 dpi->templates = dpt.next;
6279 d_print_comp (dpi, options, d_left (d_left (dc)));
6284 if (dpi->current_template != NULL)
6285 dpi->templates = dpt.next;
6287 if (d_last_char (dpi) == '<')
6288 d_append_char (dpi, ' ');
6289 d_append_char (dpi, '<');
6290 d_print_comp (dpi, options, d_right (d_left (dc)));
6293 if (d_last_char (dpi) == '>')
6294 d_append_char (dpi, ' ');
6295 d_append_char (dpi, '>');