Commit c74f54a0 by David Malcolm Committed by David Malcolm

Support "gcc" namespace in gengtype

gcc/
	* gengtype.c (type_for_name): Add special-case support for
	locating types within the "gcc::" namespace.
	(open_base_files): Emit a "using namespace gcc" directive.

From-SVN: r201800
parent f758f299
2013-08-16 David Malcolm <dmalcolm@redhat.com>
* gengtype.c (type_for_name): Add special-case support for
locating types within the "gcc::" namespace.
(open_base_files): Emit a "using namespace gcc" directive.
2013-08-16 Michael Meissner <meissner@linux.vnet.ibm.com> 2013-08-16 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/58160 PR target/58160
......
...@@ -610,6 +610,16 @@ static type_p ...@@ -610,6 +610,16 @@ static type_p
type_for_name (const char *s) type_for_name (const char *s)
{ {
pair_p p; pair_p p;
/* Special-case support for types within a "gcc::" namespace. Rather
than fully-supporting namespaces, simply strip off the "gcc::" prefix
where present. This allows us to have GTY roots of this form:
extern GTY(()) gcc::some_type *some_ptr;
where the autogenerated functions will refer to simply "some_type",
where they can be resolved into their namespace. */
if (0 == strncmp(s, "gcc::", 5))
s += 5;
for (p = typedefs; p != NULL; p = p->next) for (p = typedefs; p != NULL; p = p->next)
if (strcmp (p->name, s) == 0) if (strcmp (p->name, s) == 0)
return p->type; return p->type;
...@@ -1741,6 +1751,13 @@ open_base_files (void) ...@@ -1741,6 +1751,13 @@ open_base_files (void)
/* Make sure we handle "cfun" specially. */ /* Make sure we handle "cfun" specially. */
oprintf (gtype_desc_c, "\n/* See definition in function.h. */\n"); oprintf (gtype_desc_c, "\n/* See definition in function.h. */\n");
oprintf (gtype_desc_c, "#undef cfun\n"); oprintf (gtype_desc_c, "#undef cfun\n");
oprintf (gtype_desc_c,
"\n"
"/* Types with a \"gcc::\" namespace have it stripped\n"
" during gengtype parsing. Provide a \"using\" directive\n"
" to ensure that the fully-qualified types are found. */\n"
"using namespace gcc;\n");
} }
} }
......
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