This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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;
 }
 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]