Commit fbb20b29 by Basile Starynkevitch

gengtype.h: Updated copyright year.


2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>

	* gengtype.h: Updated copyright year.
	(struct input_file_st): Add inpisplugin field.
	(type_fileloc): New function.
	* gengtype.c
	(write_typed_struct_alloc_def): Add gcc_assert.
	(write_typed_alloc_defns): Ditto. Don't output for plugin files.
	(write_typed_alloc_defns): Don't output for plugin files.
	(input_file_by_name): Clear inpisplugin field.
	(main): Set inpisplugin field for plugin files.

From-SVN: r172705
parent 897e0a89
2011-04-19 Basile Starynkevitch <basile@starynkevitch.net>
* gengtype.h: Updated copyright year.
(struct input_file_st): Add inpisplugin field.
(type_fileloc): New function.
* gengtype.c
(write_typed_struct_alloc_def): Add gcc_assert.
(write_typed_alloc_defns): Ditto. Don't output for plugin files.
(write_typed_alloc_defns): Don't output for plugin files.
(input_file_by_name): Clear inpisplugin field.
(main): Set inpisplugin field for plugin files.
2011-04-19 Nicola Pero <nicola.pero@meta-innovation.com>
* gengtype-state.c (string_eq): New.
......@@ -22,6 +35,7 @@
* config/vms/vms-ar.c: New file.
* config/vms/t-vmsnative: New file.
>>>>>>> .r172704
2011-04-18 Xinliang David Li <davidxl@google.com>
* final.c (dump_basic_block_info): Use ASM_COMMENT_START.
......
......@@ -4235,6 +4235,7 @@ write_typed_struct_alloc_def (outf_p f,
enum alloc_quantity quantity,
enum alloc_zone zone)
{
gcc_assert (UNION_OR_STRUCT_P (s));
write_typed_alloc_def (f, variable_size_p (s), get_type_specifier (s),
s->u.s.tag, allocator_type, quantity, zone);
}
......@@ -4269,6 +4270,12 @@ write_typed_alloc_defns (outf_p f,
{
if (!USED_BY_TYPED_GC_P (s))
continue;
gcc_assert (UNION_OR_STRUCT_P (s));
/* In plugin mode onput output ggc_alloc macro definitions
relevant to plugin input files. */
if (nb_plugin_files > 0
&& ((s->u.s.line.file == NULL) || !s->u.s.line.file->inpisplugin))
continue;
write_typed_struct_alloc_def (f, s, "", single, any_zone);
write_typed_struct_alloc_def (f, s, "cleared_", single, any_zone);
write_typed_struct_alloc_def (f, s, "vec_", vector, any_zone);
......@@ -4287,6 +4294,14 @@ write_typed_alloc_defns (outf_p f,
s = p->type;
if (!USED_BY_TYPED_GC_P (s) || (strcmp (p->name, s->u.s.tag) == 0))
continue;
/* In plugin mode onput output ggc_alloc macro definitions
relevant to plugin input files. */
if (nb_plugin_files > 0)
{
struct fileloc* filoc = type_fileloc(s);
if (!filoc || !filoc->file->inpisplugin)
continue;
};
write_typed_typedef_alloc_def (f, p, "", single, any_zone);
write_typed_typedef_alloc_def (f, p, "cleared_", single, any_zone);
write_typed_typedef_alloc_def (f, p, "vec_", vector, any_zone);
......@@ -4814,6 +4829,7 @@ input_file_by_name (const char* name)
f = XCNEWVAR (input_file, sizeof (input_file)+namlen+2);
f->inpbitmap = 0;
f->inpoutf = NULL;
f->inpisplugin = false;
strcpy (f->inpname, name);
slot = htab_find_slot (input_file_htab, f, INSERT);
gcc_assert (slot != NULL);
......@@ -4945,8 +4961,11 @@ main (int argc, char **argv)
/* Parse our plugin files and augment the state. */
for (ix = 0; ix < nb_plugin_files; ix++)
parse_file (get_input_file_name (plugin_files[ix]));
{
input_file* pluginput = plugin_files [ix];
pluginput->inpisplugin = true;
parse_file (get_input_file_name (pluginput));
}
if (hit_error)
return 1;
......
/* Process source files and output type information.
Copyright (C) 2002, 2003, 2004, 2007, 2008, 2010
Copyright (C) 2002, 2003, 2004, 2007, 2008, 2010, 2011
Free Software Foundation, Inc.
This file is part of GCC.
......@@ -33,6 +33,7 @@ struct input_file_st
struct outf* inpoutf; /* Cached corresponding output file, computed
in get_output_file_with_visibility. */
lang_bitmap inpbitmap; /* The set of languages using this file. */
bool inpisplugin; /* Flag set for plugin input files. */
char inpname[1]; /* A variable-length array, ended by a null
char. */
};
......@@ -328,6 +329,19 @@ extern struct type scalar_char;
/* Give the file location of a type, if any. */
static inline struct fileloc*
type_fileloc (type_p t)
{
if (!t)
return NULL;
if (UNION_OR_STRUCT_P(t))
return &t->u.s.line;
if (t->kind == TYPE_PARAM_STRUCT)
return &t->u.param_struct.line;
return NULL;
}
/* Structure representing an output file. */
struct outf
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment