diff options
author | Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | 2016-01-13 02:51:11 +0000 |
---|---|---|
committer | Trevor Saunders <tbsaunde@gcc.gnu.org> | 2016-01-13 02:51:11 +0000 |
commit | 36365906b74c92f33668387ae16842ed9d6c1b2a (patch) | |
tree | 90e33426ec03a715686a01015843dc5a555b6afc /gcc | |
parent | bf3f4b389a2e454149a2369f7d60edc9d8a0f9f9 (diff) | |
download | gcc-36365906b74c92f33668387ae16842ed9d6c1b2a.zip gcc-36365906b74c92f33668387ae16842ed9d6c1b2a.tar.gz gcc-36365906b74c92f33668387ae16842ed9d6c1b2a.tar.bz2 |
remove mark_hook gty attribute
gcc/ChangeLog:
2016-01-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
PR middle-end/54809
* doc/gty.texi: Remove documentation of mark_hook.
* gengtype.c (struct write_types_data): Remove code to support
mark_hook attribute.
(walk_type): Likewise.
(write_func_for_structure): Likewise.
From-SVN: r232309
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/doc/gty.texi | 10 | ||||
-rw-r--r-- | gcc/gengtype.c | 33 |
3 files changed, 12 insertions, 40 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 07a6a41..39fd107 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2016-01-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> + + PR middle-end/54809 + * doc/gty.texi: Remove documentation of mark_hook. + * gengtype.c (struct write_types_data): Remove code to support + mark_hook attribute. + (walk_type): Likewise. + (write_func_for_structure): Likewise. + 2016-01-12 Sandra Loosemore <sandra@codesourcery.com> * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to diff --git a/gcc/doc/gty.texi b/gcc/doc/gty.texi index d3ca4e0..1a22e4b 100644 --- a/gcc/doc/gty.texi +++ b/gcc/doc/gty.texi @@ -261,16 +261,6 @@ garbage collection runs, there's no need to mark anything pointed to by this variable, it can just be set to @code{NULL} instead. This is used to keep a list of free structures around for re-use. -@findex mark_hook -@item mark_hook ("@var{hook-routine-name}") - -If provided for a structure or union type, the given -@var{hook-routine-name} (between double-quotes) is the name of a -routine called when the garbage collector has just marked the data as -reachable. This routine should not change the data, or call any ggc -routine. Its only argument is a pointer to the just marked (const) -structure or union. - @findex maybe_undef @item maybe_undef diff --git a/gcc/gengtype.c b/gcc/gengtype.c index 966e597..be49660 100644 --- a/gcc/gengtype.c +++ b/gcc/gengtype.c @@ -2407,7 +2407,6 @@ struct write_types_data const char *marker_routine; const char *reorder_note_routine; const char *comment; - int skip_hooks; /* skip hook generation if non zero */ enum write_types_kinds kind; }; @@ -2677,8 +2676,6 @@ walk_type (type_p t, struct walk_type_data *d) maybe_undef_p = 1; else if (strcmp (oo->name, "desc") == 0 && oo->kind == OPTION_STRING) desc = oo->info.string; - else if (strcmp (oo->name, "mark_hook") == 0) - ; else if (strcmp (oo->name, "nested_ptr") == 0 && oo->kind == OPTION_NESTED) nested_ptr_d = (const struct nested_ptr_data *) oo->info.nested; @@ -2918,7 +2915,6 @@ walk_type (type_p t, struct walk_type_data *d) const char *oldval = d->val; const char *oldprevval1 = d->prev_val[1]; const char *oldprevval2 = d->prev_val[2]; - const char *struct_mark_hook = NULL; const int union_p = t->kind == TYPE_UNION; int seen_default_p = 0; options_p o; @@ -2942,13 +2938,6 @@ walk_type (type_p t, struct walk_type_data *d) if (!desc && strcmp (o->name, "desc") == 0 && o->kind == OPTION_STRING) desc = o->info.string; - else if (!struct_mark_hook && strcmp (o->name, "mark_hook") == 0 - && o->kind == OPTION_STRING) - struct_mark_hook = o->info.string; - - if (struct_mark_hook) - oprintf (d->of, "%*s%s (&%s);\n", - d->indent, "", struct_mark_hook, oldval); d->prev_val[2] = oldval; d->prev_val[1] = oldprevval2; @@ -3473,7 +3462,6 @@ write_func_for_structure (type_p orig_s, type_p s, const char *chain_next = NULL; const char *chain_prev = NULL; const char *chain_circular = NULL; - const char *mark_hook_name = NULL; options_p opt; struct walk_type_data d; @@ -3509,9 +3497,6 @@ write_func_for_structure (type_p orig_s, type_p s, else if (strcmp (opt->name, "chain_circular") == 0 && opt->kind == OPTION_STRING) chain_circular = opt->info.string; - else if (strcmp (opt->name, "mark_hook") == 0 - && opt->kind == OPTION_STRING) - mark_hook_name = opt->info.string; else if (strcmp (opt->name, "for_user") == 0) for_user = true; if (chain_prev != NULL && chain_next == NULL) @@ -3576,17 +3561,11 @@ write_func_for_structure (type_p orig_s, type_p s, oprintf (d.of, "))\n"); if (chain_circular != NULL) oprintf (d.of, " return;\n do\n"); - if (mark_hook_name && !wtd->skip_hooks) - { - oprintf (d.of, " {\n"); - oprintf (d.of, " %s (xlimit);\n ", mark_hook_name); - } + oprintf (d.of, " xlimit = ("); d.prev_val[2] = "*xlimit"; output_escaped_param (&d, chain_next, "chain_next"); oprintf (d.of, ");\n"); - if (mark_hook_name && !wtd->skip_hooks) - oprintf (d.of, " }\n"); if (chain_prev != NULL) { oprintf (d.of, " if (x != xlimit)\n"); @@ -3618,18 +3597,12 @@ write_func_for_structure (type_p orig_s, type_p s, output_mangled_typename (d.of, orig_s); } oprintf (d.of, "));\n"); - if (mark_hook_name && !wtd->skip_hooks) - oprintf (d.of, " %s (xlimit);\n", mark_hook_name); oprintf (d.of, " do\n"); } else oprintf (d.of, " while (x != xlimit)\n"); } oprintf (d.of, " {\n"); - if (mark_hook_name && chain_next == NULL && !wtd->skip_hooks) - { - oprintf (d.of, " %s (x);\n", mark_hook_name); - } d.prev_val[2] = "*x"; d.indent = 6; @@ -3789,14 +3762,14 @@ write_types (outf_p output_header, type_p structures, static const struct write_types_data ggc_wtd = { "ggc_m", NULL, "ggc_mark", "ggc_test_and_set_mark", NULL, "GC marker procedures. ", - FALSE, WTK_GGC + WTK_GGC }; static const struct write_types_data pch_wtd = { "pch_n", "pch_p", "gt_pch_note_object", "gt_pch_note_object", "gt_pch_note_reorder", "PCH type-walking procedures. ", - TRUE, WTK_PCH + WTK_PCH }; /* Write out the local pointer-walking routines. */ |