This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Remove set_sizetype
On Thu, 9 Jun 2011, Richard Guenther wrote:
> On Thu, 9 Jun 2011, Eric Botcazou wrote:
>
> > > Now that there is a single place left to call set_sizetype we can
> > > remove it and initialize sizetypes properly from the start
> > > (in initialize_sizetypes).
> >
> > Can you give a meaningful TYPE_NAME to sizetype? Ada dump files now read:
> >
> > _GLOBAL.SZ0_discr31 (integer p0, integer p1)
> > {
> > return p1 <= p0 ? ((bitsizetype) ((<unnamed-unsigned:32>) p0 -
> > (<unnamed-unsigned:32>) p1) + 1) * 8 : 0;
> > }
> >
> > and this isn't very pretty.
>
> It's on my todo - I need to fixup FEs to not expect a TYPE_DECL
> everywhere.
Like this, testing with the C family fixup.
Bootstrapped on x86_64-unknown-linux-gnu, testing in progress.
Richard.
2011-06-09 Richard Guenther <rguenther@suse.de>
* stor-layout.c (initialize_sizetypes): Give names to all
sizetype kinds.
Index: gcc/stor-layout.c
===================================================================
--- gcc/stor-layout.c (revision 174841)
+++ gcc/stor-layout.c (working copy)
@@ -2215,8 +2215,7 @@ initialize_sizetypes (void)
/* Create stubs for sizetype and bitsizetype so we can create constants. */
sizetype = make_node (INTEGER_TYPE);
- /* ??? We can't set a name for sizetype because it appears in C diagnostics
- and pp_c_type_specifier doesn't deal with IDENTIFIER_NODE TYPE_NAMEs. */
+ TYPE_NAME (sizetype) = get_identifier ("sizetype");
TYPE_PRECISION (sizetype) = precision;
TYPE_UNSIGNED (sizetype) = 1;
TYPE_IS_SIZETYPE (sizetype) = 1;
@@ -2250,8 +2249,10 @@ initialize_sizetypes (void)
/* Create the signed variants of *sizetype. */
ssizetype = make_signed_type (TYPE_PRECISION (sizetype));
+ TYPE_NAME (ssizetype) = get_identifier ("ssizetype");
TYPE_IS_SIZETYPE (ssizetype) = 1;
sbitsizetype = make_signed_type (TYPE_PRECISION (bitsizetype));
+ TYPE_NAME (sbitsizetype) = get_identifier ("sbitsizetype");
TYPE_IS_SIZETYPE (sbitsizetype) = 1;
}