aboutsummaryrefslogtreecommitdiff
path: root/gcc/c-family
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@acm.org>2017-09-12 14:25:17 +0000
committerNathan Sidwell <nathan@gcc.gnu.org>2017-09-12 14:25:17 +0000
commit6836632e96e894513c605a2eb6e2dfae77a9a069 (patch)
treed01c2a6b39749135ebf8d37977e049108baac8f6 /gcc/c-family
parent13bdca744bda9321d6e0f4beca7bf9ac2e0870c0 (diff)
downloadgcc-6836632e96e894513c605a2eb6e2dfae77a9a069.zip
gcc-6836632e96e894513c605a2eb6e2dfae77a9a069.tar.gz
gcc-6836632e96e894513c605a2eb6e2dfae77a9a069.tar.bz2
c-common.c (field_decl_cmp, [...]): Move to c/c-decl.c.
c-family/ * c-common.c (field_decl_cmp, resort_data, resort_field_decl_cmp, resort_sorted_fields): Move to c/c-decl.c. * c-common.h (field_decl_cmp, resort_sorted_fields): Delete. (struct sorted_fields_type): Move to c/c-lang.h. c/ * c-decl.c (field_decl_cmp, resort_data, resort_field_decl_cmp, resort_sorted_fields): Moved from c-family/c-common.c. * c-lang.h (struct sorted_fields_type): Moved from c-family/c-common.h. From-SVN: r252023
Diffstat (limited to 'gcc/c-family')
-rw-r--r--gcc/c-family/ChangeLog7
-rw-r--r--gcc/c-family/c-common.c68
-rw-r--r--gcc/c-family/c-common.h10
3 files changed, 7 insertions, 78 deletions
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
index 3d95949..29037e5 100644
--- a/gcc/c-family/ChangeLog
+++ b/gcc/c-family/ChangeLog
@@ -1,3 +1,10 @@
+2017-09-12 Nathan Sidwell <nathan@acm.org>
+
+ * c-common.c (field_decl_cmp, resort_data, resort_field_decl_cmp,
+ resort_sorted_fields): Move to c/c-decl.c.
+ * c-common.h (field_decl_cmp, resort_sorted_fields): Delete.
+ (struct sorted_fields_type): Move to c/c-lang.h.
+
2017-09-09 Jonathan Wakely <jwakely@redhat.com>
PR c++/81852
diff --git a/gcc/c-family/c-common.c b/gcc/c-family/c-common.c
index af50cc7..b3ec3a0 100644
--- a/gcc/c-family/c-common.c
+++ b/gcc/c-family/c-common.c
@@ -309,7 +309,6 @@ static bool check_case_bounds (location_t, tree, tree, tree *, tree *,
static void check_nonnull_arg (void *, tree, unsigned HOST_WIDE_INT);
static bool nonnull_check_p (tree, unsigned HOST_WIDE_INT);
-static int resort_field_decl_cmp (const void *, const void *);
/* Reserved words. The third field is a mask: keywords are disabled
if they match the mask.
@@ -5871,73 +5870,6 @@ check_builtin_function_arguments (location_t loc, vec<location_t> arg_loc,
}
}
-/* Function to help qsort sort FIELD_DECLs by name order. */
-
-int
-field_decl_cmp (const void *x_p, const void *y_p)
-{
- const tree *const x = (const tree *) x_p;
- const tree *const y = (const tree *) y_p;
-
- if (DECL_NAME (*x) == DECL_NAME (*y))
- /* A nontype is "greater" than a type. */
- return (TREE_CODE (*y) == TYPE_DECL) - (TREE_CODE (*x) == TYPE_DECL);
- if (DECL_NAME (*x) == NULL_TREE)
- return -1;
- if (DECL_NAME (*y) == NULL_TREE)
- return 1;
- if (DECL_NAME (*x) < DECL_NAME (*y))
- return -1;
- return 1;
-}
-
-static struct {
- gt_pointer_operator new_value;
- void *cookie;
-} resort_data;
-
-/* This routine compares two fields like field_decl_cmp but using the
-pointer operator in resort_data. */
-
-static int
-resort_field_decl_cmp (const void *x_p, const void *y_p)
-{
- const tree *const x = (const tree *) x_p;
- const tree *const y = (const tree *) y_p;
-
- if (DECL_NAME (*x) == DECL_NAME (*y))
- /* A nontype is "greater" than a type. */
- return (TREE_CODE (*y) == TYPE_DECL) - (TREE_CODE (*x) == TYPE_DECL);
- if (DECL_NAME (*x) == NULL_TREE)
- return -1;
- if (DECL_NAME (*y) == NULL_TREE)
- return 1;
- {
- tree d1 = DECL_NAME (*x);
- tree d2 = DECL_NAME (*y);
- resort_data.new_value (&d1, resort_data.cookie);
- resort_data.new_value (&d2, resort_data.cookie);
- if (d1 < d2)
- return -1;
- }
- return 1;
-}
-
-/* Resort DECL_SORTED_FIELDS because pointers have been reordered. */
-
-void
-resort_sorted_fields (void *obj,
- void * ARG_UNUSED (orig_obj),
- gt_pointer_operator new_value,
- void *cookie)
-{
- struct sorted_fields_type *sf = (struct sorted_fields_type *) obj;
- resort_data.new_value = new_value;
- resort_data.cookie = cookie;
- qsort (&sf->elts[0], sf->len, sizeof (tree),
- resort_field_decl_cmp);
-}
-
/* Subroutine of c_parse_error.
Return the result of concatenating LHS and RHS. RHS is really
a string literal, its first character is indicated by RHS_START and
diff --git a/gcc/c-family/c-common.h b/gcc/c-family/c-common.h
index 8e36768..0de549d 100644
--- a/gcc/c-family/c-common.h
+++ b/gcc/c-family/c-common.h
@@ -493,13 +493,6 @@ extern const unsigned int num_c_common_reswords;
extern GTY(()) tree c_global_trees[CTI_MAX];
-/* In a RECORD_TYPE, a sorted array of the fields of the type, not a
- tree for size reasons. */
-struct GTY(()) sorted_fields_type {
- int len;
- tree GTY((length ("%h.len"))) elts[1];
-};
-
/* Mark which labels are explicitly declared.
These may be shadowed, and may be referenced from nested functions. */
#define C_DECLARED_LABEL_FLAG(label) TREE_LANG_FLAG_1 (label)
@@ -597,9 +590,6 @@ extern tree build_array_notation_expr (location_t, tree, tree, enum tree_code,
extern tree build_array_notation_ref (location_t, tree, tree, tree, tree, tree);
extern tree build_indirect_ref (location_t, tree, ref_operator);
-extern int field_decl_cmp (const void *, const void *);
-extern void resort_sorted_fields (void *, void *, gt_pointer_operator,
- void *);
extern bool has_c_linkage (const_tree decl);
extern bool c_decl_implicit (const_tree);