class.c (sorted_fields_type_new): Factor out of ...
* class.c (sorted_fields_type_new): Factor out of ... (finish_struct_1): ... here. From-SVN: r179939
This commit is contained in:
parent
1fb0b80148
commit
385b73ab1d
@ -1,3 +1,8 @@
|
|||||||
|
2011-10-13 Diego Novillo <dnovillo@google.com>
|
||||||
|
|
||||||
|
* class.c (sorted_fields_type_new): Factor out of ...
|
||||||
|
(finish_struct_1): ... here.
|
||||||
|
|
||||||
2011-10-13 Jason Merrill <jason@redhat.com>
|
2011-10-13 Jason Merrill <jason@redhat.com>
|
||||||
|
|
||||||
PR c++/50618
|
PR c++/50618
|
||||||
|
@ -5663,6 +5663,22 @@ determine_key_method (tree type)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Allocate and return an instance of struct sorted_fields_type with
|
||||||
|
N fields. */
|
||||||
|
|
||||||
|
static struct sorted_fields_type *
|
||||||
|
sorted_fields_type_new (int n)
|
||||||
|
{
|
||||||
|
struct sorted_fields_type *sft;
|
||||||
|
sft = ggc_alloc_sorted_fields_type (sizeof (struct sorted_fields_type)
|
||||||
|
+ n * sizeof (tree));
|
||||||
|
sft->len = n;
|
||||||
|
|
||||||
|
return sft;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Perform processing required when the definition of T (a class type)
|
/* Perform processing required when the definition of T (a class type)
|
||||||
is complete. */
|
is complete. */
|
||||||
|
|
||||||
@ -5792,9 +5808,7 @@ finish_struct_1 (tree t)
|
|||||||
n_fields = count_fields (TYPE_FIELDS (t));
|
n_fields = count_fields (TYPE_FIELDS (t));
|
||||||
if (n_fields > 7)
|
if (n_fields > 7)
|
||||||
{
|
{
|
||||||
struct sorted_fields_type *field_vec = ggc_alloc_sorted_fields_type
|
struct sorted_fields_type *field_vec = sorted_fields_type_new (n_fields);
|
||||||
(sizeof (struct sorted_fields_type) + n_fields * sizeof (tree));
|
|
||||||
field_vec->len = n_fields;
|
|
||||||
add_fields_to_record_type (TYPE_FIELDS (t), field_vec, 0);
|
add_fields_to_record_type (TYPE_FIELDS (t), field_vec, 0);
|
||||||
qsort (field_vec->elts, n_fields, sizeof (tree),
|
qsort (field_vec->elts, n_fields, sizeof (tree),
|
||||||
field_decl_cmp);
|
field_decl_cmp);
|
||||||
|
Loading…
Reference in New Issue
Block a user