Index: gcc/gengtype.c
===================================================================
--- gcc/gengtype.c	(revision 164568)
+++ gcc/gengtype.c	(working copy)
@@ -21,14 +21,15 @@
 #include "bconfig.h"
 #include "system.h"
 #include "gengtype.h"
-#include "errors.h"	/* for fatal */
+#include "errors.h"		/* for fatal */
 #include "double-int.h"
 #include "hashtab.h"
 
 /* Data types, macros, etc. used only in this file.  */
 
 /* Kinds of types we can understand.  */
-enum typekind {
+enum typekind
+{
   TYPE_SCALAR,
   TYPE_STRING,
   TYPE_STRUCT,
@@ -71,16 +72,16 @@ struct pair
 
 /* A description of a type.  */
 enum gc_used_enum
-  {
-    GC_UNUSED = 0,
-    GC_USED,
-    /* Used for structures whose definitions we haven't seen so far when
-       we encounter a pointer to it that is annotated with ``maybe_undef''.
-       If after reading in everything we don't have source file
-       information for it, we assume that it never has been defined. */
-    GC_MAYBE_POINTED_TO,
-    GC_POINTED_TO
-  };
+{
+  GC_UNUSED = 0,
+  GC_USED,
+  /* Used for structures whose definitions we haven't seen so far when
+     we encounter a pointer to it that is annotated with ``maybe_undef''.
+     If after reading in everything we don't have source file
+     information for it, we assume that it never has been defined. */
+  GC_MAYBE_POINTED_TO,
+  GC_POINTED_TO
+};
 
 struct type
 {
@@ -88,9 +89,11 @@ struct type
   type_p next;
   type_p pointer_to;
   enum gc_used_enum gc_used;
-  union {
+  union
+  {
     type_p p;
-    struct {
+    struct
+    {
       const char *tag;
       struct fileloc line;
       pair_p fields;
@@ -99,11 +102,13 @@ struct type
       type_p lang_struct;
     } s;
     bool scalar_is_char;
-    struct {
+    struct
+    {
       type_p p;
       const char *len;
     } a;
-    struct {
+    struct
+    {
       type_p stru;
       type_p param[NUM_PARAM];
       struct fileloc line;
@@ -112,13 +117,13 @@ struct type
 };
 
 #define UNION_P(x)					\
- ((x)->kind == TYPE_UNION || 				\
-  ((x)->kind == TYPE_LANG_STRUCT 			\
-   && (x)->u.s.lang_struct->kind == TYPE_UNION))
+  ((x)->kind == TYPE_UNION || 				\
+   ((x)->kind == TYPE_LANG_STRUCT 			\
+    && (x)->u.s.lang_struct->kind == TYPE_UNION))
 #define UNION_OR_STRUCT_P(x)			\
- ((x)->kind == TYPE_UNION 			\
-  || (x)->kind == TYPE_STRUCT 			\
-  || (x)->kind == TYPE_LANG_STRUCT)
+  ((x)->kind == TYPE_UNION 			\
+   || (x)->kind == TYPE_STRUCT 			\
+   || (x)->kind == TYPE_LANG_STRUCT)
 
 /* Structure representing an output file.  */
 struct outf
@@ -129,25 +134,25 @@ struct outf
   size_t bufused;
   char *buf;
 };
-typedef struct outf * outf_p;
+typedef struct outf *outf_p;
 
 /* An output file, suitable for definitions, that can see declarations
    made in INPUT_FILE and is linked into every language that uses
    INPUT_FILE.  May return NULL in plugin mode. */
-extern outf_p get_output_file_with_visibility
-   (const char *input_file);
+extern outf_p get_output_file_with_visibility (const char *input_file);
 const char *get_output_file_name (const char *);
 
 /* Print, like fprintf, to O.  No-op if O is NULL. */
-static void oprintf (outf_p o, const char *S, ...)
-     ATTRIBUTE_PRINTF_2;
+static void
+oprintf (outf_p o, const char *S, ...)
+  ATTRIBUTE_PRINTF_2;
 
 /* The list of output files.  */
 static outf_p output_files;
 
 /* The plugin input files and their number; in that case only
    a single file is produced.  */
-static char** plugin_files;
+static char **plugin_files;
 static size_t nb_plugin_files;
 /* the generated plugin output name & file */
 static outf_p plugin_output;
@@ -164,14 +169,14 @@ static size_t srcdir_len = 0;
 
 static outf_p create_file (const char *, const char *);
 
-static const char * get_file_basename (const char *);
-static const char * get_file_realbasename (const char *);
-static const char * get_file_srcdir_relative_path (const char *);
+static const char *get_file_basename (const char *);
+static const char *get_file_realbasename (const char *);
+static const char *get_file_srcdir_relative_path (const char *);
 
 static int get_prefix_langdir_index (const char *);
-static const char * get_file_langdir (const char *);
+static const char *get_file_langdir (const char *);
+
 
-
 /* Nonzero iff an error has occurred.  */
 bool hit_error = false;
 
@@ -251,13 +256,13 @@ get_lang_bitmap (const char *gtfile)
 
   if (gtfile == this_file)
     /* Things defined in this file are universal.  */
-    return (((lang_bitmap)1) << num_lang_dirs) - 1;
+    return (((lang_bitmap) 1) << num_lang_dirs) - 1;
   else
     {
       lang_bitmap n = 0;
       int i;
       for (i = -(int) sizeof (lang_bitmap); i < 0; i++)
-	n = (n << CHAR_BIT) + (unsigned char)gtfile[i];
+	n = (n << CHAR_BIT) + (unsigned char) gtfile[i];
       return n;
     }
 }
@@ -270,7 +275,7 @@ set_lang_bitmap (char *gtfile, lang_bitmap n)
   int i;
   for (i = -1; i >= -(int) sizeof (lang_bitmap); i--)
     {
-      gtfile[i] = n & ((1U << CHAR_BIT)-1);
+      gtfile[i] = n & ((1U << CHAR_BIT) - 1);
       n >>= CHAR_BIT;
     }
 }
@@ -319,8 +324,7 @@ measure_input_list (FILE *list)
    touch *HEREP, and sets *LINEP to NULL.  POS is used for
    diagnostics.  */
 static bool
-read_input_line (FILE *list, char **herep, char **linep,
-		 struct fileloc *pos)
+read_input_line (FILE *list, char **herep, char **linep, struct fileloc *pos)
 {
   char *here = *herep;
   char *line;
@@ -349,12 +353,13 @@ static bool
 
       if (c == ']')
 	{
-	  c = getc (list);  /* eat what should be a newline */
+	  c = getc (list);	/* eat what should be a newline */
 	  if (c != '\n' && c != EOF)
 	    error_at_line (pos, "junk on line after language tag [%s]", line);
 	}
       else
-	error_at_line (pos, "missing close bracket for language tag [%s", line);
+	error_at_line (pos, "missing close bracket for language tag [%s",
+		       line);
 
       *herep = here;
       *linep = line;
@@ -429,7 +434,8 @@ read_input_list (const char *listname)
 	      for (i = 0; i < langno; i++)
 		if (strcmp (lang_dir_names[i], line) == 0)
 		  {
-		    error_at_line (&epos, "duplicate language tag [%s]", line);
+		    error_at_line (&epos, "duplicate language tag [%s]",
+				   line);
 		    curlangs = 1 << i;
 		    here = committed;
 		    goto next_line;
@@ -449,13 +455,15 @@ read_input_list (const char *listname)
 		       current language to the existing string's bitmap.  */
 		    lang_bitmap bmap = get_lang_bitmap (gt_files[i]);
 		    if (bmap & curlangs)
-		      error_at_line (&epos, "file %s specified more than once "
-				     "for language %s", line, langno == 0
-				     ? "(all)"
-				     : lang_dir_names[langno - 1]);
+		      error_at_line (&epos,
+				     "file %s specified more than once "
+				     "for language %s", line,
+				     langno ==
+				     0 ? "(all)" : lang_dir_names[langno -
+								  1]);
 
 		    bmap |= curlangs;
-		    set_lang_bitmap (CONST_CAST(char *, gt_files[i]), bmap);
+		    set_lang_bitmap (CONST_CAST (char *, gt_files[i]), bmap);
 		    here = committed;
 		    goto next_line;
 		  }
@@ -465,7 +473,7 @@ read_input_list (const char *listname)
 	    }
 	}
       /* Update the global counts now that we know accurately how many
-	 things there are.  (We do not bother resizing the arrays down.)  */
+         things there are.  (We do not bother resizing the arrays down.)  */
       num_lang_dirs = langno;
       /* Add the plugin files if provided.  */
       if (plugin_files)
@@ -493,7 +501,7 @@ read_input_list (const char *listname)
 	  {
 	    size_t l;
 	    for (l = 0; l < num_lang_dirs; l++)
-	      if ((size_t)(slashpos - basename) == strlen (lang_dir_names [l])
+	      if ((size_t) (slashpos - basename) == strlen (lang_dir_names[l])
 		  && memcmp (basename, lang_dir_names[l],
 			     strlen (lang_dir_names[l])) == 0)
 		{
@@ -503,7 +511,7 @@ read_input_list (const char *listname)
 			   basename, lang_dir_names[l]);
 		  break;
 		}
-          }
+	  }
       }
   }
 
@@ -512,9 +520,9 @@ read_input_list (const char *listname)
 
   fclose (list);
 }
+
 
 
-
 /* The one and only TYPE_STRING.  */
 
 static struct type string_type = {
@@ -527,6 +535,7 @@ static struct type string_type = {
 static struct type scalar_nonchar = {
   TYPE_SCALAR, 0, 0, GC_USED, {0}
 };
+
 static struct type scalar_char = {
   TYPE_SCALAR, 0, 0, GC_USED, {0}
 };
@@ -538,8 +547,7 @@ static type_p structures;
 static type_p param_structs;
 static pair_p variables;
 
-static type_p find_param_structure
-  (type_p t, type_p param[NUM_PARAM]);
+static type_p find_param_structure (type_p t, type_p param[NUM_PARAM]);
 static type_p adjust_field_tree_exp (type_p t, options_p opt);
 static type_p adjust_field_rtx_def (type_p t, options_p opt);
 
@@ -597,7 +605,7 @@ resolve_typedef (const char *s, struct fileloc *po
     if (strcmp (p->name, s) == 0)
       return p->type;
   error_at_line (pos, "unidentified type `%s'", s);
-  return &scalar_nonchar;  /* treat as "int" */
+  return &scalar_nonchar;	/* treat as "int" */
 }
 
 /* Create and return a new structure with tag NAME (or a union iff
@@ -614,13 +622,11 @@ new_structure (const char *name, int isunion, stru
   /* temporary kludge - gengtype doesn't handle conditionals or
      macros.  Ignore any attempt to define struct location_s, unless
      it is coming from this file (main() sets it up safely). */
-  if (!strcmp (name, "location_s") && !isunion
-      && pos->file != this_file)
+  if (!strcmp (name, "location_s") && !isunion && pos->file != this_file)
     return find_structure (name, 0);
 
   for (si = structures; si != NULL; si = si->next)
-    if (strcmp (name, si->u.s.tag) == 0
-	&& UNION_P (si) == isunion)
+    if (strcmp (name, si->u.s.tag) == 0 && UNION_P (si) == isunion)
       {
 	type_p ls = NULL;
 	if (si->kind == TYPE_LANG_STRUCT)
@@ -682,8 +688,7 @@ new_structure (const char *name, int isunion, stru
 
   /* Reset location_s's location to input.h so that we know where to
      write out its mark routine.  */
-  if (!strcmp (name, "location_s") && !isunion
-      && pos->file == this_file)
+  if (!strcmp (name, "location_s") && !isunion && pos->file == this_file)
     {
       size_t n;
       for (n = 0; n < num_gt_files; n++)
@@ -695,7 +700,7 @@ new_structure (const char *name, int isunion, stru
 	  }
     }
 
-    return s;
+  return s;
 }
 
 /* Return the previously-defined structure with tag NAME (or a union
@@ -708,8 +713,7 @@ find_structure (const char *name, int isunion)
   type_p s;
 
   for (s = structures; s != NULL; s = s->next)
-    if (strcmp (name, s->u.s.tag) == 0
-	&& UNION_P (s) == isunion)
+    if (strcmp (name, s->u.s.tag) == 0 && UNION_P (s) == isunion)
       return s;
 
   s = XCNEW (struct type);
@@ -763,7 +767,7 @@ create_scalar_type (const char *name)
 type_p
 create_pointer (type_p t)
 {
-  if (! t->pointer_to)
+  if (!t->pointer_to)
     {
       type_p r = XCNEW (struct type);
       r->kind = TYPE_POINTER;
@@ -796,7 +800,7 @@ create_option (options_p next, const char *name, c
   options_p o = XNEW (struct options);
   o->next = next;
   o->name = name;
-  o->info = (const char*) info;
+  o->info = (const char *) info;
   return o;
 }
 
@@ -860,7 +864,7 @@ create_field_at (pair_p next, type_p type, const c
 /* Create a fake field with the given type and name.  NEXT is the next
    field in the chain.  */
 #define create_field(next,type,name) \
-    create_field_all(next,type,name, 0, this_file, __LINE__)
+  create_field_all(next,type,name, 0, this_file, __LINE__)
 
 /* Like create_field, but the field is only valid when condition COND
    is true.  */
@@ -885,11 +889,11 @@ create_optional_field_ (pair_p next, type_p type,
   /* Create the field and give it the new fake union type.  Add a "desc"
      tag that specifies the condition under which the field is valid.  */
   return create_field_all (next, union_type, name,
-			   create_option (0, "desc", cond),
-			   this_file, line);
+			   create_option (0, "desc", cond), this_file, line);
 }
+
 #define create_optional_field(next,type,name,cond)	\
-       create_optional_field_(next,type,name,cond,__LINE__)
+  create_optional_field_(next,type,name,cond,__LINE__)
 
 /* Reverse a linked list of 'struct pair's in place.  */
 pair_p
@@ -904,27 +908,28 @@ nreverse_pairs (pair_p list)
     }
   return prev;
 }
+
 
-
 /* We don't care how long a CONST_DOUBLE is.  */
 #define CONST_DOUBLE_FORMAT "ww"
 /* We don't want to see codes that are only for generator files.  */
 #undef GENERATOR_FILE
 
-enum rtx_code {
+enum rtx_code
+{
 #define DEF_RTL_EXPR(ENUM, NAME, FORMAT, CLASS) ENUM ,
 #include "rtl.def"
 #undef DEF_RTL_EXPR
   NUM_RTX_CODE
 };
 
-static const char * const rtx_name[NUM_RTX_CODE] = {
+static const char *const rtx_name[NUM_RTX_CODE] = {
 #define DEF_RTL_EXPR(ENUM, NAME, FORMAT, CLASS)   NAME ,
 #include "rtl.def"
 #undef DEF_RTL_EXPR
 };
 
-static const char * const rtx_format[NUM_RTX_CODE] = {
+static const char *const rtx_format[NUM_RTX_CODE] = {
 #define DEF_RTL_EXPR(ENUM, NAME, FORMAT, CLASS)   FORMAT ,
 #include "rtl.def"
 #undef DEF_RTL_EXPR
@@ -934,7 +939,8 @@ static int rtx_next_new[NUM_RTX_CODE];
 
 /* We also need codes and names for insn notes (not register notes).
    Note that we do *not* bias the note values here.  */
-enum insn_note {
+enum insn_note
+{
 #define DEF_INSN_NOTE(NAME) NAME,
 #include "insn-notes.def"
 #undef DEF_INSN_NOTE
@@ -944,7 +950,7 @@ static int rtx_next_new[NUM_RTX_CODE];
 
 /* We must allocate one more entry here, as we use NOTE_INSN_MAX as the
    default field for line number notes.  */
-static const char *const note_insn_name[NOTE_INSN_MAX+1] = {
+static const char *const note_insn_name[NOTE_INSN_MAX + 1] = {
 #define DEF_INSN_NOTE(NAME) #NAME,
 #include "insn-notes.def"
 #undef DEF_INSN_NOTE
@@ -992,8 +998,7 @@ write_rtx_next (void)
       oprintf (f, "  0,\n");
     else
       oprintf (f,
-	       "  RTX_HDR_SIZE + %d * sizeof (rtunion),\n",
-	       rtx_next_new[i]);
+	       "  RTX_HDR_SIZE + %d * sizeof (rtunion),\n", rtx_next_new[i]);
   oprintf (f, "};\n");
 }
 
@@ -1025,8 +1030,9 @@ adjust_field_rtx_def (type_p t, options_p ARG_UNUS
   mem_attrs_tp = create_pointer (find_structure ("mem_attrs", 0));
   reg_attrs_tp = create_pointer (find_structure ("reg_attrs", 0));
   basic_block_tp = create_pointer (find_structure ("basic_block_def", 0));
-  constant_tp = create_pointer (find_structure ("constant_descriptor_rtx", 0));
-  scalar_tp = &scalar_nonchar;  /* rtunion int */
+  constant_tp =
+    create_pointer (find_structure ("constant_descriptor_rtx", 0));
+  scalar_tp = &scalar_nonchar;	/* rtunion int */
 
   {
     pair_p note_flds = NULL;
@@ -1109,8 +1115,7 @@ adjust_field_rtx_def (type_p t, options_p ARG_UNUS
 		t = scalar_tp, subname = "rt_int";
 	      else if (i == CODE_LABEL && aindex == 4)
 		t = rtx_tp, subname = "rt_rtx";
-	      else if (i == LABEL_REF
-		       && (aindex == 1 || aindex == 2))
+	      else if (i == LABEL_REF && (aindex == 1 || aindex == 2))
 		t = rtx_tp, subname = "rt_rtx";
 	      else if (i == NOTE && aindex == 4)
 		t = note_union_tp, subname = "";
@@ -1139,7 +1144,7 @@ adjust_field_rtx_def (type_p t, options_p ARG_UNUS
 	      else
 		{
 		  error_at_line (&lexer_line,
-			"rtx type `%s' has `0' in position %lu, can't handle",
+				 "rtx type `%s' has `0' in position %lu, can't handle",
 				 rtx_name[i], (unsigned long) aindex);
 		  t = &string_type;
 		  subname = "rt_int";
@@ -1177,9 +1182,9 @@ adjust_field_rtx_def (type_p t, options_p ARG_UNUS
 
 	    default:
 	      error_at_line (&lexer_line,
-		     "rtx type `%s' has `%c' in position %lu, can't handle",
+			     "rtx type `%s' has `%c' in position %lu, can't handle",
 			     rtx_name[i], rtx_format[i][aindex],
-			     (unsigned long)aindex);
+			     (unsigned long) aindex);
 	      t = &string_type;
 	      subname = "rt_int";
 	      break;
@@ -1282,11 +1287,11 @@ adjust_field_type (type_p t, options_p opt)
       {
 	int num = ISDIGIT (opt->name[5]) ? opt->name[5] - '0' : 0;
 
-	if (! UNION_OR_STRUCT_P (t)
-	    && (t->kind != TYPE_POINTER || ! UNION_OR_STRUCT_P (t->u.p)))
+	if (!UNION_OR_STRUCT_P (t)
+	    && (t->kind != TYPE_POINTER || !UNION_OR_STRUCT_P (t->u.p)))
 	  {
 	    error_at_line (&lexer_line,
-   "option `%s' may only be applied to structures or structure pointers",
+			   "option `%s' may only be applied to structures or structure pointers",
 			   opt->name);
 	    return t;
 	  }
@@ -1294,8 +1299,9 @@ adjust_field_type (type_p t, options_p opt)
 	params_p = 1;
 	if (params[num] != NULL)
 	  error_at_line (&lexer_line, "duplicate `%s' option", opt->name);
-	if (! ISDIGIT (opt->name[5]))
-	  params[num] = create_pointer (CONST_CAST2(type_p, const char *, opt->info));
+	if (!ISDIGIT (opt->name[5]))
+	  params[num] =
+	    create_pointer (CONST_CAST2 (type_p, const char *, opt->info));
 	else
 	  params[num] = CONST_CAST2 (type_p, const char *, opt->info);
       }
@@ -1320,10 +1326,8 @@ adjust_field_type (type_p t, options_p opt)
       t = pointer_p ? create_pointer (realt) : realt;
     }
 
-  if (! length_p
-      && pointer_p
-      && t->u.p->kind == TYPE_SCALAR
-      && t->u.p->u.scalar_is_char)
+  if (!length_p
+      && pointer_p && t->u.p->kind == TYPE_SCALAR && t->u.p->u.scalar_is_char)
     return &string_type;
   if (t->kind == TYPE_ARRAY && t->u.a.p->kind == TYPE_POINTER
       && t->u.a.p->u.p->kind == TYPE_SCALAR
@@ -1332,8 +1336,8 @@ adjust_field_type (type_p t, options_p opt)
 
   return t;
 }
+
 
-
 static void set_gc_used_type (type_p, enum gc_used_enum, type_p *);
 static void set_gc_used (pair_p);
 
@@ -1341,7 +1345,8 @@ static void set_gc_used (pair_p);
 
 static void
 process_gc_options (options_p opt, enum gc_used_enum level, int *maybe_undef,
-		    int *pass_param, int *length, int *skip, type_p *nested_ptr)
+		    int *pass_param, int *length, int *skip,
+		    type_p *nested_ptr)
 {
   options_p o;
   for (o = opt; o; o = o->next)
@@ -1403,7 +1408,7 @@ set_gc_used_type (type_p t, enum gc_used_enum leve
 	      set_gc_used_type (find_param_structure (f->type->u.p, param),
 				GC_POINTED_TO, NULL);
 	    else if (skip)
-	      ; /* target type is not used through this field */
+	      ;			/* target type is not used through this field */
 	    else
 	      set_gc_used_type (f->type, GC_USED, pass_param ? param : NULL);
 	  }
@@ -1522,7 +1527,7 @@ oprintf (outf_p o, const char *format, ...)
 
   va_start (ap, format);
   slength = vasprintf (&s, format, ap);
-  if (s == NULL || (int)slength < 0)
+  if (s == NULL || (int) slength < 0)
     fatal ("out of memory");
   va_end (ap);
 
@@ -1531,9 +1536,11 @@ oprintf (outf_p o, const char *format, ...)
       size_t new_len = o->buflength;
       if (new_len == 0)
 	new_len = 1024;
-      do {
-	new_len *= 2;
-      } while (o->bufused + slength >= new_len);
+      do
+	{
+	  new_len *= 2;
+	}
+      while (o->bufused + slength >= new_len);
       o->buf = XRESIZEVEC (char, o->buf, new_len);
       o->buflength = new_len;
     }
@@ -1563,9 +1570,9 @@ open_base_files (void)
   /* gtype-desc.c is a little special, so we create it here.  */
   {
     /* The order of files here matters very much.  */
-    static const char *const ifiles [] = {
+    static const char *const ifiles[] = {
       "config.h", "system.h", "coretypes.h", "tm.h",
-      "hashtab.h", "splay-tree.h",  "obstack.h", "bitmap.h", "input.h",
+      "hashtab.h", "splay-tree.h", "obstack.h", "bitmap.h", "input.h",
       "tree.h", "rtl.h", "function.h", "insn-config.h", "expr.h",
       "hard-reg-set.h", "basic-block.h", "cselib.h", "insn-addr.h",
       "optabs.h", "libfuncs.h", "debug.h", "ggc.h", "cgraph.h",
@@ -1592,7 +1599,7 @@ open_base_files (void)
 static const char *
 get_file_realbasename (const char *f)
 {
-  const char * lastslash = strrchr (f, '/');
+  const char *lastslash = strrchr (f, '/');
 
   return (lastslash != NULL) ? lastslash + 1 : f;
 }
@@ -1617,7 +1624,7 @@ get_file_srcdir_relative_path (const char *f)
 static const char *
 get_file_basename (const char *f)
 {
-  const char * srcdir_path = get_file_srcdir_relative_path (f);
+  const char *srcdir_path = get_file_srcdir_relative_path (f);
 
   return (srcdir_path != NULL) ? srcdir_path : get_file_realbasename (f);
 }
@@ -1633,7 +1640,7 @@ get_prefix_langdir_index (const char *f)
 
   for (lang_index = 0; lang_index < num_lang_dirs; lang_index++)
     {
-      const char * langdir = lang_dir_names [lang_index];
+      const char *langdir = lang_dir_names[lang_index];
       size_t langdir_len = strlen (langdir);
 
       if (f_len > langdir_len
@@ -1656,18 +1663,17 @@ get_file_langdir (const char *f)
      srcdir relative, no point in looking further.  */
 
   int lang_index;
-  const char * srcdir_relative_path = get_file_srcdir_relative_path (f);
-  const char * r;
+  const char *srcdir_relative_path = get_file_srcdir_relative_path (f);
+  const char *r;
 
   if (!srcdir_relative_path)
     return NULL;
 
   lang_index = get_prefix_langdir_index (srcdir_relative_path);
-  if (lang_index < 0
-      && strncmp (srcdir_relative_path, "c-family", 8) == 0)
+  if (lang_index < 0 && strncmp (srcdir_relative_path, "c-family", 8) == 0)
     r = "c-family";
   else if (lang_index >= 0)
-    r = lang_dir_names [lang_index];
+    r = lang_dir_names[lang_index];
   else
     r = NULL;
 
@@ -1685,7 +1691,7 @@ get_file_gtfilename (const char *f)
   const char *basename = get_file_realbasename (f);
   const char *langdir = get_file_langdir (f);
 
-  char * result =
+  char *result =
     (langdir ? xasprintf ("gt-%s-%s", langdir, basename)
      : xasprintf ("gt-%s", basename));
 
@@ -1696,7 +1702,7 @@ get_file_gtfilename (const char *f)
   char *s = result;
 
   for (; *s != '.'; s++)
-    if (! ISALNUM (*s) && *s != '-')
+    if (!ISALNUM (*s) && *s != '-')
       *s = '-';
 
   memcpy (s, ".h", sizeof (".h"));
@@ -1739,9 +1745,9 @@ get_output_file_with_visibility (const char *input
   basename = get_file_basename (input_file);
 
   len = strlen (basename);
-  if ((len > 2 && memcmp (basename+len-2, ".c", 2) == 0)
-      || (len > 2 && memcmp (basename+len-2, ".y", 2) == 0)
-      || (len > 3 && memcmp (basename+len-3, ".in", 3) == 0))
+  if ((len > 2 && memcmp (basename + len - 2, ".c", 2) == 0)
+      || (len > 2 && memcmp (basename + len - 2, ".y", 2) == 0)
+      || (len > 3 && memcmp (basename + len - 3, ".in", 3) == 0))
     {
       output_name = get_file_gtfilename (input_file);
       for_name = basename;
@@ -1768,7 +1774,8 @@ get_output_file_with_visibility (const char *input
   else if (strncmp (basename, "cp", 2) == 0 && IS_DIR_SEPARATOR (basename[2])
 	   && strcmp (basename + 3, "name-lookup.h") == 0)
     output_name = "gt-cp-name-lookup.h", for_name = "cp/name-lookup.c";
-  else if (strncmp (basename, "objc", 4) == 0 && IS_DIR_SEPARATOR (basename[4])
+  else if (strncmp (basename, "objc", 4) == 0
+	   && IS_DIR_SEPARATOR (basename[4])
 	   && strcmp (basename + 5, "objc-act.h") == 0)
     output_name = "gt-objc-objc-act.h", for_name = "objc/objc-act.c";
   else
@@ -1801,7 +1808,7 @@ get_output_file_with_visibility (const char *input
 const char *
 get_output_file_name (const char *input_file)
 {
-  outf_p o =  get_output_file_with_visibility (input_file);
+  outf_p o = get_output_file_with_visibility (input_file);
   if (o)
     return o->name;
   return NULL;
@@ -1844,23 +1851,24 @@ close_output_files (void)
   for (of = output_files; of; of = of->next)
     {
 
-      if (!is_file_equal(of))
-      {
-        FILE *newfile = fopen (of->name, "w");
-        if (newfile == NULL)
-          fatal ("opening output file %s: %s", of->name, xstrerror (errno));
-        if (fwrite (of->buf, 1, of->bufused, newfile) != of->bufused)
-          fatal ("writing output file %s: %s", of->name, xstrerror (errno));
-        if (fclose (newfile) != 0)
-          fatal ("closing output file %s: %s", of->name, xstrerror (errno));
-      }
-      free(of->buf);
+      if (!is_file_equal (of))
+	{
+	  FILE *newfile = fopen (of->name, "w");
+	  if (newfile == NULL)
+	    fatal ("opening output file %s: %s", of->name, xstrerror (errno));
+	  if (fwrite (of->buf, 1, of->bufused, newfile) != of->bufused)
+	    fatal ("writing output file %s: %s", of->name, xstrerror (errno));
+	  if (fclose (newfile) != 0)
+	    fatal ("closing output file %s: %s", of->name, xstrerror (errno));
+	}
+      free (of->buf);
       of->buf = NULL;
       of->bufused = of->buflength = 0;
     }
 }
 
-struct flist {
+struct flist
+{
   struct flist *next;
   int started_p;
   const char *name;
@@ -1873,10 +1881,8 @@ struct walk_type_data;
    For structures, given a pointer to the item in 'val'.
    For misc. pointers, given the item in 'val'.
 */
-typedef void (*process_field_fn)
-     (type_p f, const struct walk_type_data *p);
-typedef void (*func_name_fn)
-     (type_p s, const struct walk_type_data *p);
+typedef void (*process_field_fn) (type_p f, const struct walk_type_data * p);
+typedef void (*func_name_fn) (type_p s, const struct walk_type_data * p);
 
 /* Parameters for write_types.  */
 
@@ -1895,28 +1901,27 @@ static void output_escaped_param (struct walk_type
 				  const char *, const char *);
 static void output_mangled_typename (outf_p, const_type_p);
 static void walk_type (type_p t, struct walk_type_data *d);
-static void write_func_for_structure (type_p orig_s, type_p s, type_p * param,
+static void write_func_for_structure (type_p orig_s, type_p s, type_p *param,
 				      const struct write_types_data *wtd);
 static void write_types_process_field
-     (type_p f, const struct walk_type_data *d);
+  (type_p f, const struct walk_type_data *d);
 static void write_types (outf_p output_header,
-                         type_p structures,
+			 type_p structures,
 			 type_p param_structs,
 			 const struct write_types_data *wtd);
 static void write_types_local_process_field
-     (type_p f, const struct walk_type_data *d);
+  (type_p f, const struct walk_type_data *d);
 static void write_local_func_for_structure
-     (const_type_p orig_s, type_p s, type_p * param);
+  (const_type_p orig_s, type_p s, type_p *param);
 static void write_local (outf_p output_header,
-                         type_p structures,
-			 type_p param_structs);
+			 type_p structures, type_p param_structs);
 static void write_enum_defn (type_p structures, type_p param_structs);
 static int contains_scalar_p (type_p t);
-static void put_mangled_filename (outf_p , const char *);
+static void put_mangled_filename (outf_p, const char *);
 static void finish_root_table (struct flist *flp, const char *pfx,
 			       const char *tname, const char *lastname,
 			       const char *name);
-static void write_root (outf_p , pair_p, type_p, const char *, int,
+static void write_root (outf_p, pair_p, type_p, const char *, int,
 			struct fileloc *, const char *, bool);
 static void write_array (outf_p f, pair_p v,
 			 const struct write_types_data *wtd);
@@ -1951,35 +1956,37 @@ output_mangled_typename (outf_p of, const_type_p t
 {
   if (t == NULL)
     oprintf (of, "Z");
-  else switch (t->kind)
-    {
-    case TYPE_POINTER:
-      oprintf (of, "P");
-      output_mangled_typename (of, t->u.p);
-      break;
-    case TYPE_SCALAR:
-      oprintf (of, "I");
-      break;
-    case TYPE_STRING:
-      oprintf (of, "S");
-      break;
-    case TYPE_STRUCT:
-    case TYPE_UNION:
-    case TYPE_LANG_STRUCT:
-      oprintf (of, "%lu%s", (unsigned long) strlen (t->u.s.tag), t->u.s.tag);
-      break;
-    case TYPE_PARAM_STRUCT:
+  else
+    switch (t->kind)
       {
-	int i;
-	for (i = 0; i < NUM_PARAM; i++)
-	  if (t->u.param_struct.param[i] != NULL)
-	    output_mangled_typename (of, t->u.param_struct.param[i]);
-	output_mangled_typename (of, t->u.param_struct.stru);
+      case TYPE_POINTER:
+	oprintf (of, "P");
+	output_mangled_typename (of, t->u.p);
+	break;
+      case TYPE_SCALAR:
+	oprintf (of, "I");
+	break;
+      case TYPE_STRING:
+	oprintf (of, "S");
+	break;
+      case TYPE_STRUCT:
+      case TYPE_UNION:
+      case TYPE_LANG_STRUCT:
+	oprintf (of, "%lu%s", (unsigned long) strlen (t->u.s.tag),
+		 t->u.s.tag);
+	break;
+      case TYPE_PARAM_STRUCT:
+	{
+	  int i;
+	  for (i = 0; i < NUM_PARAM; i++)
+	    if (t->u.param_struct.param[i] != NULL)
+	      output_mangled_typename (of, t->u.param_struct.param[i]);
+	  output_mangled_typename (of, t->u.param_struct.stru);
+	}
+	break;
+      case TYPE_ARRAY:
+	gcc_unreachable ();
       }
-      break;
-    case TYPE_ARRAY:
-      gcc_unreachable ();
-    }
 }
 
 /* Print PARAM to D->OF processing escapes.  D->VAL references the
@@ -1996,30 +2003,31 @@ output_escaped_param (struct walk_type_data *d, co
   for (p = param; *p; p++)
     if (*p != '%')
       oprintf (d->of, "%c", *p);
-    else switch (*++p)
-      {
-      case 'h':
-	oprintf (d->of, "(%s)", d->prev_val[2]);
-	break;
-      case '0':
-	oprintf (d->of, "(%s)", d->prev_val[0]);
-	break;
-      case '1':
-	oprintf (d->of, "(%s)", d->prev_val[1]);
-	break;
-      case 'a':
+    else
+      switch (*++p)
 	{
-	  const char *pp = d->val + strlen (d->val);
-	  while (pp[-1] == ']')
-	    while (*pp != '[')
-	      pp--;
-	  oprintf (d->of, "%s", pp);
+	case 'h':
+	  oprintf (d->of, "(%s)", d->prev_val[2]);
+	  break;
+	case '0':
+	  oprintf (d->of, "(%s)", d->prev_val[0]);
+	  break;
+	case '1':
+	  oprintf (d->of, "(%s)", d->prev_val[1]);
+	  break;
+	case 'a':
+	  {
+	    const char *pp = d->val + strlen (d->val);
+	    while (pp[-1] == ']')
+	      while (*pp != '[')
+		pp--;
+	    oprintf (d->of, "%s", pp);
+	  }
+	  break;
+	default:
+	  error_at_line (d->line, "`%s' option contains bad escape %c%c",
+			 oname, '%', *p);
 	}
-	break;
-      default:
-	error_at_line (d->line, "`%s' option contains bad escape %c%c",
-		       oname, '%', *p);
-      }
 }
 
 /* Call D->PROCESS_FIELD for every field (or subfield) of D->VAL,
@@ -2076,8 +2084,7 @@ walk_type (type_p t, struct walk_type_data *d)
     else if (strcmp (oo->name, "param_is") == 0)
       ;
     else if (strncmp (oo->name, "param", 5) == 0
-	     && ISDIGIT (oo->name[5])
-	     && strcmp (oo->name + 6, "_is") == 0)
+	     && ISDIGIT (oo->name[5]) && strcmp (oo->name + 6, "_is") == 0)
       ;
     else if (strcmp (oo->name, "chain_next") == 0)
       ;
@@ -2101,7 +2108,7 @@ walk_type (type_p t, struct walk_type_data *d)
 
       if (pointer_p)
 	t = t->u.p;
-      if (! UNION_OR_STRUCT_P (t))
+      if (!UNION_OR_STRUCT_P (t))
 	error_at_line (d->line, "`use_params' option on unimplemented type");
       else
 	t = find_param_structure (t, d->param);
@@ -2125,12 +2132,11 @@ walk_type (type_p t, struct walk_type_data *d)
 	  t = nt;
 	}
       else
-	error_at_line (d->line, "no parameter defined for `%s'",
-		       d->val);
+	error_at_line (d->line, "no parameter defined for `%s'", d->val);
     }
 
   if (maybe_undef_p
-      && (t->kind != TYPE_POINTER || ! UNION_OR_STRUCT_P (t->u.p)))
+      && (t->kind != TYPE_POINTER || !UNION_OR_STRUCT_P (t->u.p)))
     {
       error_at_line (d->line,
 		     "field `%s' has invalid option `maybe_undef_p'\n",
@@ -2147,16 +2153,15 @@ walk_type (type_p t, struct walk_type_data *d)
 
     case TYPE_POINTER:
       {
-	if (maybe_undef_p
-	    && t->u.p->u.s.line.file == NULL)
+	if (maybe_undef_p && t->u.p->u.s.line.file == NULL)
 	  {
 	    oprintf (d->of, "%*sgcc_assert (!%s);\n", d->indent, "", d->val);
 	    break;
 	  }
 
-	if (! length)
+	if (!length)
 	  {
-	    if (! UNION_OR_STRUCT_P (t->u.p)
+	    if (!UNION_OR_STRUCT_P (t->u.p)
 		&& t->u.p->kind != TYPE_PARAM_STRUCT)
 	      {
 		error_at_line (d->line,
@@ -2169,12 +2174,11 @@ walk_type (type_p t, struct walk_type_data *d)
 	      {
 		const char *oldprevval2 = d->prev_val[2];
 
-		if (! UNION_OR_STRUCT_P (nested_ptr_d->type))
+		if (!UNION_OR_STRUCT_P (nested_ptr_d->type))
 		  {
 		    error_at_line (d->line,
 				   "field `%s' has invalid "
-				   "option `nested_ptr'\n",
-				   d->val);
+				   "option `nested_ptr'\n", d->val);
 		    return;
 		  }
 
@@ -2186,8 +2190,7 @@ walk_type (type_p t, struct walk_type_data *d)
 			 (nested_ptr_d->type->kind == TYPE_UNION
 			  ? "union" : "struct"),
 			 nested_ptr_d->type->u.s.tag,
-			 d->fn_wants_lvalue ? "" : "const ",
-			 d->val);
+			 d->fn_wants_lvalue ? "" : "const ", d->val);
 		oprintf (d->of, "%*s", d->indent + 2, "");
 		output_escaped_param (d, nested_ptr_d->convert_from,
 				      "nested_ptr");
@@ -2223,8 +2226,8 @@ walk_type (type_p t, struct walk_type_data *d)
 	    oprintf (d->of, "%*sif (%s != NULL) {\n", d->indent, "", d->val);
 	    d->indent += 2;
 	    oprintf (d->of, "%*ssize_t i%d;\n", d->indent, "", loopcounter);
-	    oprintf (d->of, "%*sfor (i%d = 0; i%d != (size_t)(", d->indent, "",
-		     loopcounter, loopcounter);
+	    oprintf (d->of, "%*sfor (i%d = 0; i%d != (size_t)(", d->indent,
+		     "", loopcounter, loopcounter);
 	    output_escaped_param (d, length, "length");
 	    oprintf (d->of, "); i%d++) {\n", loopcounter);
 	    d->indent += 2;
@@ -2238,7 +2241,7 @@ walk_type (type_p t, struct walk_type_data *d)
 	    d->used_length = 0;
 	    d->indent -= 2;
 	    oprintf (d->of, "%*s}\n", d->indent, "");
-	    d->process_field(t, d);
+	    d->process_field (t, d);
 	    d->indent -= 2;
 	    oprintf (d->of, "%*s}\n", d->indent, "");
 	  }
@@ -2302,7 +2305,7 @@ walk_type (type_p t, struct walk_type_data *d)
 	int seen_default_p = 0;
 	options_p o;
 
-	if (! t->u.s.line.file)
+	if (!t->u.s.line.file)
 	  error_at_line (d->line, "incomplete structure `%s'", t->u.s.tag);
 
 	if ((d->bitmap & t->u.s.bitmap) != d->bitmap)
@@ -2315,7 +2318,7 @@ walk_type (type_p t, struct walk_type_data *d)
 
 	/* Some things may also be defined in the structure's options.  */
 	for (o = t->u.s.opt; o; o = o->next)
-	  if (! desc && strcmp (o->name, "desc") == 0)
+	  if (!desc && strcmp (o->name, "desc") == 0)
 	    desc = o->info;
 
 	d->prev_val[2] = oldval;
@@ -2324,7 +2327,8 @@ walk_type (type_p t, struct walk_type_data *d)
 	  {
 	    if (desc == NULL)
 	      {
-		error_at_line (d->line, "missing `desc' option for union `%s'",
+		error_at_line (d->line,
+			       "missing `desc' option for union `%s'",
 			       t->u.s.tag);
 		desc = "1";
 	      }
@@ -2374,19 +2378,19 @@ walk_type (type_p t, struct walk_type_data *d)
 		d->indent += 2;
 		seen_default_p = 1;
 	      }
-	    else if (! union_p && (default_p || tagid))
+	    else if (!union_p && (default_p || tagid))
 	      error_at_line (d->line,
 			     "can't use `%s' outside a union on field `%s'",
 			     default_p ? "default" : "tag", f->name);
-	    else if (union_p && ! (default_p || tagid)
+	    else if (union_p && !(default_p || tagid)
 		     && f->type->kind == TYPE_SCALAR)
 	      {
 		fprintf (stderr,
-	"%s:%d: warning: field `%s' is missing `tag' or `default' option\n",
+			 "%s:%d: warning: field `%s' is missing `tag' or `default' option\n",
 			 d->line->file, d->line->line, f->name);
 		continue;
 	      }
-	    else if (union_p && ! (default_p || tagid))
+	    else if (union_p && !(default_p || tagid))
 	      error_at_line (d->line,
 			     "field `%s' is missing `tag' or `default' option",
 			     f->name);
@@ -2415,7 +2419,7 @@ walk_type (type_p t, struct walk_type_data *d)
 	d->prev_val[1] = oldprevval1;
 	d->prev_val[2] = oldprevval2;
 
-	if (union_p && ! seen_default_p)
+	if (union_p && !seen_default_p)
 	  {
 	    oprintf (d->of, "%*sdefault:\n", d->indent, "");
 	    oprintf (d->of, "%*s  break;\n", d->indent, "");
@@ -2488,8 +2492,7 @@ write_types_process_field (type_p f, const struct
 	      oprintf (d->of, ", gt_e_");
 	      output_mangled_typename (d->of, f);
 	    }
-	  else if (UNION_OR_STRUCT_P (f)
-		   && f->u.p->u.s.line.file != NULL)
+	  else if (UNION_OR_STRUCT_P (f) && f->u.p->u.s.line.file != NULL)
 	    {
 	      oprintf (d->of, ", gt_ggc_e_");
 	      output_mangled_typename (d->of, f);
@@ -2551,7 +2554,7 @@ output_type_enum (outf_p of, type_p s)
 static outf_p
 get_output_file_for_structure (const_type_p s, type_p *param)
 {
-  const char * fn = s->u.s.line.file;
+  const char *fn = s->u.s.line.file;
   int i;
 
   /* This is a hack, and not the good kind either.  */
@@ -2567,8 +2570,8 @@ get_output_file_for_structure (const_type_p s, typ
    PARAM, write out a routine that:
    - Takes a parameter, a void * but actually of type *S
    - If SEEN_ROUTINE returns nonzero, calls write_types_process_field on each
-     field of S or its substructures and (in some cases) things
-     that are pointed to by S.
+   field of S or its substructures and (in some cases) things
+   that are pointed to by S.
 */
 
 static void
@@ -2610,7 +2613,7 @@ write_func_for_structure (type_p orig_s, type_p s,
   d.bitmap = s->u.s.bitmap;
   d.param = param;
   d.prev_val[0] = "*x";
-  d.prev_val[1] = "not valid postage";  /* Guarantee an error.  */
+  d.prev_val[1] = "not valid postage";	/* Guarantee an error.  */
   d.prev_val[3] = "x";
   d.val = "(*x)";
 
@@ -2682,8 +2685,7 @@ write_func_for_structure (type_p orig_s, type_p s,
 	  oprintf (d.of, ");\n");
 	  oprintf (d.of, "        if (xprev == NULL) break;\n");
 	  oprintf (d.of, "        x = xprev;\n");
-	  oprintf (d.of, "        (void) %s (xprev",
-		   wtd->marker_routine);
+	  oprintf (d.of, "        (void) %s (xprev", wtd->marker_routine);
 	  if (wtd->param_prefix)
 	    {
 	      oprintf (d.of, ", xprev, gt_%s_", wtd->param_prefix);
@@ -2745,13 +2747,11 @@ write_types (outf_p output_header, type_p structur
      emitted afterwards.  This is needed in plugin mode.  */
   oprintf (output_header, "/* macros and declarations */\n");
   for (s = structures; s; s = s->next)
-    if (s->gc_used == GC_POINTED_TO
-	|| s->gc_used == GC_MAYBE_POINTED_TO)
+    if (s->gc_used == GC_POINTED_TO || s->gc_used == GC_MAYBE_POINTED_TO)
       {
 	options_p opt;
 
-	if (s->gc_used == GC_MAYBE_POINTED_TO
-	    && s->u.s.line.file == NULL)
+	if (s->gc_used == GC_MAYBE_POINTED_TO && s->u.s.line.file == NULL)
 	  continue;
 
 	oprintf (output_header, "#define gt_%s_", wtd->prefix);
@@ -2760,16 +2760,14 @@ write_types (outf_p output_header, type_p structur
 	oprintf (output_header,
 		 "  if (X != NULL) gt_%sx_%s (X);\\\n", wtd->prefix,
 		 s->u.s.tag);
-	oprintf (output_header,
-		 "  } while (0)\n");
+	oprintf (output_header, "  } while (0)\n");
 
 	for (opt = s->u.s.opt; opt; opt = opt->next)
 	  if (strcmp (opt->name, "ptr_alias") == 0)
 	    {
 	      const_type_p const t = (const_type_p) opt->info;
 	      if (t->kind == TYPE_STRUCT
-		  || t->kind == TYPE_UNION
-		  || t->kind == TYPE_LANG_STRUCT)
+		  || t->kind == TYPE_UNION || t->kind == TYPE_LANG_STRUCT)
 		oprintf (output_header,
 			 "#define gt_%sx_%s gt_%sx_%s\n",
 			 wtd->prefix, s->u.s.tag, wtd->prefix, t->u.s.tag);
@@ -2815,13 +2813,11 @@ write_types (outf_p output_header, type_p structur
   /* At last we emit the functions code.  */
   oprintf (output_header, "\n/* functions code */\n");
   for (s = structures; s; s = s->next)
-    if (s->gc_used == GC_POINTED_TO
-	|| s->gc_used == GC_MAYBE_POINTED_TO)
+    if (s->gc_used == GC_POINTED_TO || s->gc_used == GC_MAYBE_POINTED_TO)
       {
 	options_p opt;
 
-	if (s->gc_used == GC_MAYBE_POINTED_TO
-	    && s->u.s.line.file == NULL)
+	if (s->gc_used == GC_MAYBE_POINTED_TO && s->u.s.line.file == NULL)
 	  continue;
 	for (opt = s->u.s.opt; opt; opt = opt->next)
 	  if (strcmp (opt->name, "ptr_alias") == 0)
@@ -2856,15 +2852,13 @@ write_types (outf_p output_header, type_p structur
       }
 }
 
-static const struct write_types_data ggc_wtd =
-{
+static const struct write_types_data ggc_wtd = {
   "ggc_m", NULL, "ggc_mark", "ggc_test_and_set_mark", NULL,
   "GC marker procedures.  ",
   FALSE
 };
 
-static const struct write_types_data pch_wtd =
-{
+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.  ",
@@ -2918,7 +2912,7 @@ write_local_func_for_structure (const_type_p orig_
   d.bitmap = s->u.s.bitmap;
   d.param = param;
   d.prev_val[0] = d.prev_val[2] = "*x";
-  d.prev_val[1] = "not valid postage";  /* Guarantee an error.  */
+  d.prev_val[1] = "not valid postage";	/* Guarantee an error.  */
   d.prev_val[3] = "x";
   d.val = "(*x)";
   d.fn_wants_lvalue = true;
@@ -2951,8 +2945,7 @@ write_local (outf_p output_header, type_p structur
     return;
   oprintf (output_header, "\n/* Local pointer-walking routines.  */\n");
   for (s = structures; s; s = s->next)
-    if (s->gc_used == GC_POINTED_TO
-	|| s->gc_used == GC_MAYBE_POINTED_TO)
+    if (s->gc_used == GC_POINTED_TO || s->gc_used == GC_MAYBE_POINTED_TO)
       {
 	options_p opt;
 
@@ -2964,8 +2957,7 @@ write_local (outf_p output_header, type_p structur
 	    {
 	      const_type_p const t = (const_type_p) opt->info;
 	      if (t->kind == TYPE_STRUCT
-		  || t->kind == TYPE_UNION
-		  || t->kind == TYPE_LANG_STRUCT)
+		  || t->kind == TYPE_UNION || t->kind == TYPE_LANG_STRUCT)
 		{
 		  oprintf (output_header, "#define gt_pch_p_");
 		  output_mangled_typename (output_header, s);
@@ -2985,7 +2977,7 @@ write_local (outf_p output_header, type_p structur
 	oprintf (output_header, "extern void gt_pch_p_");
 	output_mangled_typename (output_header, s);
 	oprintf (output_header,
-	 "\n    (void *, void *, gt_pointer_operator, void *);\n");
+		 "\n    (void *, void *, gt_pointer_operator, void *);\n");
 
 	if (s->kind == TYPE_LANG_STRUCT)
 	  {
@@ -3000,14 +2992,14 @@ write_local (outf_p output_header, type_p structur
   for (s = param_structs; s; s = s->next)
     if (s->gc_used == GC_POINTED_TO)
       {
-	type_p * param = s->u.param_struct.param;
+	type_p *param = s->u.param_struct.param;
 	type_p stru = s->u.param_struct.stru;
 
 	/* Declare the marker procedure.  */
 	oprintf (output_header, "extern void gt_pch_p_");
 	output_mangled_typename (output_header, s);
 	oprintf (output_header,
-	 "\n    (void *, void *, gt_pointer_operator, void *);\n");
+		 "\n    (void *, void *, gt_pointer_operator, void *);\n");
 
 	if (stru->u.s.line.file == NULL)
 	  {
@@ -3084,7 +3076,7 @@ contains_scalar_p (type_p t)
       return contains_scalar_p (t->u.a.p);
     default:
       /* Could also check for structures that have no non-pointer
-	 fields, but there aren't enough of those to worry about.  */
+         fields, but there aren't enough of those to worry about.  */
       return 1;
     }
 }
@@ -3131,8 +3123,7 @@ finish_root_table (struct flist *flp, const char *
 	  if (bitmap & 1)
 	    {
 	      oprintf (base_files[fnum],
-		       "extern const struct %s gt_%s_",
-		       tname, pfx);
+		       "extern const struct %s gt_%s_", tname, pfx);
 	      put_mangled_filename (base_files[fnum], fli2->name);
 	      oprintf (base_files[fnum], "[];\n");
 	    }
@@ -3141,9 +3132,8 @@ finish_root_table (struct flist *flp, const char *
   {
     size_t fnum;
     for (fnum = 0; base_files && fnum < num_lang_dirs; fnum++)
-      oprintf (base_files [fnum],
-	       "EXPORTED_CONST struct %s * const %s[] = {\n",
-	       tname, name);
+      oprintf (base_files[fnum],
+	       "EXPORTED_CONST struct %s * const %s[] = {\n", tname, name);
   }
 
 
@@ -3240,13 +3230,13 @@ write_field_root (outf_p f, pair_p v, type_p type,
 /* Write out to F the table entry and any marker routines needed to
    mark NAME as TYPE.  V can be one of three values:
 
-     - null, if NAME is too complex to represent using a single
-       count and stride.  In this case, it is an error for NAME to
-       contain any gc-ed data.
+   - null, if NAME is too complex to represent using a single
+   count and stride.  In this case, it is an error for NAME to
+   contain any gc-ed data.
 
-     - the outermost array that contains NAME, if NAME is part of an array.
+   - the outermost array that contains NAME, if NAME is part of an array.
 
-     - the C variable that contains NAME, if NAME is not part of an array.
+   - the C variable that contains NAME, if NAME is not part of an array.
 
    LINE is the line of the C source that declares the root variable.
    HAS_LENGTH is nonzero iff V was a variable-length array.  IF_MARKED
@@ -3276,7 +3266,7 @@ write_root (outf_p f, pair_p v, type_p type, const
 		;
 	      else
 		error_at_line (line,
-		       "field `%s' of global `%s' has unknown option `%s'",
+			       "field `%s' of global `%s' has unknown option `%s'",
 			       fld->name, name, o->name);
 
 	    if (skip_p)
@@ -3298,10 +3288,9 @@ write_root (outf_p f, pair_p v, type_p type, const
 		      continue;
 		    if (validf != NULL)
 		      error_at_line (line,
-			   "both `%s.%s.%s' and `%s.%s.%s' have tag `%s'",
+				     "both `%s.%s.%s' and `%s.%s.%s' have tag `%s'",
 				     name, fld->name, validf->name,
-				     name, fld->name, ufld->name,
-				     tag);
+				     name, fld->name, ufld->name, tag);
 		    validf = ufld;
 		  }
 		if (validf != NULL)
@@ -3312,7 +3301,7 @@ write_root (outf_p f, pair_p v, type_p type, const
 	      }
 	    else if (desc)
 	      error_at_line (line,
-		     "global `%s.%s' has `desc' option but is not union",
+			     "global `%s.%s' has `desc' option but is not union",
 			     name, fld->name);
 	    else
 	      write_field_root (f, v, type, name, 0, line, if_marked,
@@ -3340,7 +3329,7 @@ write_root (outf_p f, pair_p v, type_p type, const
 
 	tp = type->u.p;
 
-	if (! has_length && UNION_OR_STRUCT_P (tp))
+	if (!has_length && UNION_OR_STRUCT_P (tp))
 	  {
 	    oprintf (f, "    &gt_ggc_mx_%s,\n", tp->u.s.tag);
 	    if (emit_pch)
@@ -3348,7 +3337,7 @@ write_root (outf_p f, pair_p v, type_p type, const
 	    else
 	      oprintf (f, "    NULL");
 	  }
-	else if (! has_length && tp->kind == TYPE_PARAM_STRUCT)
+	else if (!has_length && tp->kind == TYPE_PARAM_STRUCT)
 	  {
 	    oprintf (f, "    &gt_ggc_m_");
 	    output_mangled_typename (f, tp);
@@ -3396,9 +3385,7 @@ write_root (outf_p f, pair_p v, type_p type, const
       break;
 
     default:
-      error_at_line (line,
-		     "global `%s' is unimplemented type",
-		     name);
+      error_at_line (line, "global `%s' is unimplemented type", name);
     }
 }
 
@@ -3424,8 +3411,7 @@ write_array (outf_p f, pair_p v, const struct writ
   if (wtd->param_prefix)
     {
       oprintf (f, "static void gt_%sa_%s\n", wtd->param_prefix, v->name);
-      oprintf (f,
-       "    (void *, void *, gt_pointer_operator, void *);\n");
+      oprintf (f, "    (void *, void *, gt_pointer_operator, void *);\n");
       oprintf (f, "static void gt_%sa_%s (ATTRIBUTE_UNUSED void *this_obj,\n",
 	       wtd->param_prefix, v->name);
       oprintf (d.of,
@@ -3440,8 +3426,7 @@ write_array (outf_p f, pair_p v, const struct writ
     }
 
   d.opt = v->opt;
-  oprintf (f, "static void gt_%sa_%s (void *);\n",
-	   wtd->prefix, v->name);
+  oprintf (f, "static void gt_%sa_%s (void *);\n", wtd->prefix, v->name);
   oprintf (f, "static void\ngt_%sa_%s (ATTRIBUTE_UNUSED void *x_p)\n",
 	   wtd->prefix, v->name);
   oprintf (f, "{\n");
@@ -3476,8 +3461,7 @@ write_roots (pair_p variables, bool emit_pch)
 	else if (strcmp (o->name, "param_is") == 0)
 	  ;
 	else if (strncmp (o->name, "param", 5) == 0
-		 && ISDIGIT (o->name[5])
-		 && strcmp (o->name + 6, "_is") == 0)
+		 && ISDIGIT (o->name[5]) && strcmp (o->name + 6, "_is") == 0)
 	  ;
 	else if (strcmp (o->name, "if_marked") == 0)
 	  ;
@@ -3496,13 +3480,13 @@ write_roots (pair_p variables, bool emit_pch)
 	  fli->next = flp;
 	  fli->started_p = 0;
 	  fli->name = v->line.file;
-	  gcc_assert(fli->name);
+	  gcc_assert (fli->name);
 	  flp = fli;
 
 	  oprintf (f, "\n/* GC roots.  */\n\n");
 	}
 
-      if (! deletable_p
+      if (!deletable_p
 	  && length
 	  && v->type->kind == TYPE_POINTER
 	  && (v->type->u.p->kind == TYPE_POINTER
@@ -3534,7 +3518,7 @@ write_roots (pair_p variables, bool emit_pch)
       for (fli = flp; fli; fli = fli->next)
 	if (fli->f == f)
 	  break;
-      if (! fli->started_p)
+      if (!fli->started_p)
 	{
 	  fli->started_p = 1;
 
@@ -3568,7 +3552,7 @@ write_roots (pair_p variables, bool emit_pch)
       for (fli = flp; fli; fli = fli->next)
 	if (fli->f == f)
 	  break;
-      if (! fli->started_p)
+      if (!fli->started_p)
 	{
 	  fli->started_p = 1;
 
@@ -3605,14 +3589,15 @@ write_roots (pair_p variables, bool emit_pch)
 	  || v->type->u.p->kind != TYPE_PARAM_STRUCT
 	  || v->type->u.p->u.param_struct.stru != find_structure ("htab", 0))
 	{
-	  error_at_line (&v->line, "if_marked option used but not hash table");
+	  error_at_line (&v->line,
+			 "if_marked option used but not hash table");
 	  continue;
 	}
 
       for (fli = flp; fli; fli = fli->next)
 	if (fli->f == f)
 	  break;
-      if (! fli->started_p)
+      if (!fli->started_p)
 	{
 	  fli->started_p = 1;
 
@@ -3645,13 +3630,13 @@ write_roots (pair_p variables, bool emit_pch)
 	else if (strcmp (o->name, "if_marked") == 0)
 	  if_marked_p = 1;
 
-      if (! if_marked_p)
+      if (!if_marked_p)
 	continue;
 
       for (fli = flp; fli; fli = fli->next)
 	if (fli->f == f)
 	  break;
-      if (! fli->started_p)
+      if (!fli->started_p)
 	{
 	  fli->started_p = 1;
 
@@ -3681,13 +3666,13 @@ write_roots (pair_p variables, bool emit_pch)
       if (skip_p)
 	continue;
 
-      if (! contains_scalar_p (v->type))
+      if (!contains_scalar_p (v->type))
 	continue;
 
       for (fli = flp; fli; fli = fli->next)
 	if (fli->f == f)
 	  break;
-      if (! fli->started_p)
+      if (!fli->started_p)
 	{
 	  fli->started_p = 1;
 
@@ -3722,7 +3707,7 @@ note_def_vec (const char *type_name, bool is_scala
   type_p t;
   options_p o;
   type_p len_ty = create_scalar_type ("unsigned");
-  const char *name = concat ("VEC_", type_name, "_base", (char *)0);
+  const char *name = concat ("VEC_", type_name, "_base", (char *) 0);
 
   if (is_scalar)
     {
@@ -3747,14 +3732,14 @@ note_def_vec (const char *type_name, bool is_scala
    we had expanded the macros in vec.h:
 
    typedef struct VEC_<type>_<astrat> {
-     VEC_<type>_base base;
+   VEC_<type>_base base;
    } VEC_<type>_<astrat>;
 */
 void
 note_def_vec_alloc (const char *type, const char *astrat, struct fileloc *pos)
 {
-  const char *astratname = concat ("VEC_", type, "_", astrat, (char *)0);
-  const char *basename = concat ("VEC_", type, "_base", (char *)0);
+  const char *astratname = concat ("VEC_", type, "_", astrat, (char *) 0);
+  const char *basename = concat ("VEC_", type, "_base", (char *) 0);
 
   pair_p field = create_field_at (0, resolve_typedef (basename, pos),
 				  "base", 0, pos);
@@ -3787,8 +3772,10 @@ variable_size_p (const type_p s)
   return false;
 }
 
-enum alloc_quantity { single, vector };
-enum alloc_zone { any_zone, specific_zone };
+enum alloc_quantity
+{ single, vector };
+enum alloc_zone
+{ any_zone, specific_zone };
 
 /* Writes one typed allocator definition for type identifier TYPE_NAME with
    optional type specifier TYPE_SPECIFIER.  The allocator name will contain
@@ -3798,15 +3785,15 @@ variable_size_p (const type_p s)
    the allocator will be zone-specific.  */
 
 static void
-write_typed_alloc_def (bool variable_size, const char * type_specifier,
-		       const char * type_name, const char * allocator_type,
+write_typed_alloc_def (bool variable_size, const char *type_specifier,
+		       const char *type_name, const char *allocator_type,
 		       enum alloc_quantity quantity, enum alloc_zone zone)
 {
   bool two_args = variable_size && (quantity == vector);
   bool third_arg = ((zone == specific_zone)
 		    && (variable_size || (quantity == vector)));
 
-  oprintf (header_file, "#define ggc_alloc_%s%s",allocator_type, type_name);
+  oprintf (header_file, "#define ggc_alloc_%s%s", allocator_type, type_name);
   oprintf (header_file, "(%s%s%s%s%s) ",
 	   (variable_size ? "SIZE" : ""),
 	   (two_args ? ", " : ""),
@@ -3828,7 +3815,7 @@ static void
 /* Writes a typed allocator definition for a struct or union S.  */
 
 static void
-write_typed_struct_alloc_def (const type_p s, const char * allocator_type,
+write_typed_struct_alloc_def (const type_p s, const char *allocator_type,
 			      enum alloc_quantity quantity,
 			      enum alloc_zone zone)
 {
@@ -3839,7 +3826,7 @@ static void
 /* Writes a typed allocator definition for a typedef P.  */
 
 static void
-write_typed_typedef_alloc_def (const pair_p p, const char * allocator_type,
+write_typed_typedef_alloc_def (const pair_p p, const char *allocator_type,
 			       enum alloc_quantity quantity,
 			       enum alloc_zone zone)
 {
@@ -3920,15 +3907,16 @@ output_typename (outf_p of, const_type_p t)
       {
 	int i;
 	for (i = 0; i < NUM_PARAM; i++)
-	  if (t->u.param_struct.param[i] != NULL) {
-	    output_typename (of, t->u.param_struct.param[i]);
-	    oprintf (of, "_");
-	  }
+	  if (t->u.param_struct.param[i] != NULL)
+	    {
+	      output_typename (of, t->u.param_struct.param[i]);
+	      oprintf (of, "_");
+	    }
 	output_typename (of, t->u.param_struct.stru);
 	break;
       }
     default:
-      gcc_unreachable();
+      gcc_unreachable ();
     }
 }
 
@@ -3938,7 +3926,7 @@ output_typename (outf_p of, const_type_p t)
 static void
 write_splay_tree_allocator_def (const_type_p s)
 {
-  outf_p of = get_output_file_for_structure(s, NULL);
+  outf_p of = get_output_file_for_structure (s, NULL);
   oprintf (of, "void * ggc_alloc_splay_tree_");
   output_typename (of, s);
   oprintf (of, " (int sz, void * nl)\n");
@@ -3983,15 +3971,32 @@ dump_typekind (int indent, enum typekind kind)
   printf ("%*ckind = ", indent, ' ');
   switch (kind)
     {
-    case TYPE_SCALAR: printf ("TYPE_SCALAR"); break;
-    case TYPE_STRING: printf ("TYPE_STRING"); break;
-    case TYPE_STRUCT: printf ("TYPE_STRUCT"); break;
-    case TYPE_UNION:  printf ("TYPE_UNION"); break;
-    case TYPE_POINTER: printf ("TYPE_POINTER"); break;
-    case TYPE_ARRAY: printf ("TYPE_ARRAY"); break;
-    case TYPE_LANG_STRUCT: printf ("TYPE_LANG_STRUCT"); break;
-    case TYPE_PARAM_STRUCT: printf ("TYPE_PARAM_STRUCT"); break;
-    default: gcc_unreachable ();
+    case TYPE_SCALAR:
+      printf ("TYPE_SCALAR");
+      break;
+    case TYPE_STRING:
+      printf ("TYPE_STRING");
+      break;
+    case TYPE_STRUCT:
+      printf ("TYPE_STRUCT");
+      break;
+    case TYPE_UNION:
+      printf ("TYPE_UNION");
+      break;
+    case TYPE_POINTER:
+      printf ("TYPE_POINTER");
+      break;
+    case TYPE_ARRAY:
+      printf ("TYPE_ARRAY");
+      break;
+    case TYPE_LANG_STRUCT:
+      printf ("TYPE_LANG_STRUCT");
+      break;
+    case TYPE_PARAM_STRUCT:
+      printf ("TYPE_PARAM_STRUCT");
+      break;
+    default:
+      gcc_unreachable ();
     }
   printf ("\n");
 }
@@ -4004,11 +4009,20 @@ dump_gc_used (int indent, enum gc_used_enum gc_use
   printf ("%*cgc_used = ", indent, ' ');
   switch (gc_used)
     {
-    case GC_UNUSED: printf ("GC_UNUSED"); break;
-    case GC_USED: printf ("GC_USED"); break;
-    case GC_MAYBE_POINTED_TO: printf ("GC_MAYBE_POINTED_TO"); break;
-    case GC_POINTED_TO: printf ("GC_POINTED_TO"); break;
-    default: gcc_unreachable ();
+    case GC_UNUSED:
+      printf ("GC_UNUSED");
+      break;
+    case GC_USED:
+      printf ("GC_USED");
+      break;
+    case GC_MAYBE_POINTED_TO:
+      printf ("GC_MAYBE_POINTED_TO");
+      break;
+    case GC_POINTED_TO:
+      printf ("GC_POINTED_TO");
+      break;
+    default:
+      gcc_unreachable ();
     }
   printf ("\n");
 }
@@ -4023,8 +4037,8 @@ dump_options (int indent, options_p opt)
   o = opt;
   while (o)
     {
-       printf ("%s:%s ", o->name, o->info);
-       o = o->next;
+      printf ("%s:%s ", o->name, o->info);
+      o = o->next;
     }
   printf ("\n");
 }
@@ -4054,8 +4068,8 @@ dump_type_u_s (int indent, type_p t)
   fields = t->u.s.fields;
   while (fields)
     {
-       dump_pair (indent + INDENT, fields);
-       fields = fields->next;
+      dump_pair (indent + INDENT, fields);
+      fields = fields->next;
     }
   printf ("%*cend of fields of type %p\n", indent, ' ', (void *) t);
   dump_options (indent, t->u.s.opt);
@@ -4118,7 +4132,7 @@ dump_type (int indent, type_p t)
 {
   PTR *slot;
 
-  printf ("%*cType at %p: ", indent, ' ', (void *)t);
+  printf ("%*cType at %p: ", indent, ' ', (void *) t);
   slot = htab_find_slot (seen_types, t, INSERT);
   if (*slot != NULL)
     {
@@ -4130,7 +4144,7 @@ dump_type (int indent, type_p t)
 
   dump_typekind (indent, t->kind);
   printf ("%*cpointer_to = %p\n", indent + INDENT, ' ',
-	  (void *)t->pointer_to);
+	  (void *) t->pointer_to);
   dump_gc_used (indent + INDENT, t->gc_used);
   switch (t->kind)
     {
@@ -4158,7 +4172,7 @@ dump_type (int indent, type_p t)
     default:
       gcc_unreachable ();
     }
-  printf ("%*cEnd of type at %p\n", indent, ' ', (void *)t);
+  printf ("%*cEnd of type at %p\n", indent, ' ', (void *) t);
 }
 
 /* Dumps the pair P.  */
@@ -4176,7 +4190,7 @@ dump_pair (int indent, pair_p p)
 /* Dumps the list of pairs PP.  */
 
 static void
-dump_pair_list (const char * name, pair_p pp)
+dump_pair_list (const char *name, pair_p pp)
 {
   pair_p p;
   printf ("%s:\n", name);
@@ -4188,7 +4202,7 @@ static void
 /* Dumps the STRUCTURES.  */
 
 static void
-dump_structures (const char * name, type_p structures)
+dump_structures (const char *name, type_p structures)
 {
   printf ("%s:\n", name);
   dump_type_list (0, structures);
@@ -4207,17 +4221,17 @@ dump_everything (void)
   dump_pair_list ("variables", variables);
   htab_delete (seen_types);
 }
+
 
-
 int
 main (int argc, char **argv)
 {
   size_t i;
   static struct fileloc pos = { this_file, 0 };
-  char* inputlist = 0;
+  char *inputlist = 0;
   int do_dump = 0;
   outf_p output_header;
-  char* plugin_output_filename = NULL;
+  char *plugin_output_filename = NULL;
   /* fatal uses this */
   progname = "gengtype";
 
@@ -4237,14 +4251,14 @@ main (int argc, char **argv)
       nb_plugin_files = argc - 5;
       plugin_files = XCNEWVEC (char *, nb_plugin_files);
       for (i = 0; i < nb_plugin_files; i++)
-      {
-        /* Place an all zero lang_bitmap before the plugin file
-	   name.  */
-        char *name = argv[i + 5];
-        int len = strlen(name) + 1 + sizeof (lang_bitmap);
-        plugin_files[i] = XCNEWVEC (char, len) + sizeof (lang_bitmap);
-        strcpy (plugin_files[i], name);
-      }
+	{
+	  /* Place an all zero lang_bitmap before the plugin file
+	     name.  */
+	  char *name = argv[i + 5];
+	  int len = strlen (name) + 1 + sizeof (lang_bitmap);
+	  plugin_files[i] = XCNEWVEC (char, len) + sizeof (lang_bitmap);
+	  strcpy (plugin_files[i], name);
+	}
     }
   else if (argc == 3)
     {
@@ -4253,7 +4267,7 @@ main (int argc, char **argv)
     }
   else
     fatal ("usage: gengtype [-d] [-P pluginout.h] srcdir input-list "
-           "[file1 file2 ... fileN]");
+	   "[file1 file2 ... fileN]");
 
   srcdir_len = strlen (srcdir);
 
@@ -4268,15 +4282,24 @@ main (int argc, char **argv)
   /* These types are set up with #define or else outside of where
      we can see them.  */
   pos.line = __LINE__ + 1;
-  do_scalar_typedef ("CUMULATIVE_ARGS", &pos); pos.line++;
-  do_scalar_typedef ("REAL_VALUE_TYPE", &pos); pos.line++;
-  do_scalar_typedef ("FIXED_VALUE_TYPE", &pos); pos.line++;
-  do_scalar_typedef ("double_int", &pos); pos.line++;
-  do_scalar_typedef ("uint64_t", &pos); pos.line++;
-  do_scalar_typedef ("uint8", &pos); pos.line++;
-  do_scalar_typedef ("jword", &pos); pos.line++;
-  do_scalar_typedef ("JCF_u2", &pos); pos.line++;
-  do_scalar_typedef ("void", &pos); pos.line++;
+  do_scalar_typedef ("CUMULATIVE_ARGS", &pos);
+  pos.line++;
+  do_scalar_typedef ("REAL_VALUE_TYPE", &pos);
+  pos.line++;
+  do_scalar_typedef ("FIXED_VALUE_TYPE", &pos);
+  pos.line++;
+  do_scalar_typedef ("double_int", &pos);
+  pos.line++;
+  do_scalar_typedef ("uint64_t", &pos);
+  pos.line++;
+  do_scalar_typedef ("uint8", &pos);
+  pos.line++;
+  do_scalar_typedef ("jword", &pos);
+  pos.line++;
+  do_scalar_typedef ("JCF_u2", &pos);
+  pos.line++;
+  do_scalar_typedef ("void", &pos);
+  pos.line++;
   do_typedef ("PTR", create_pointer (resolve_typedef ("void", &pos)), &pos);
 
   for (i = 0; i < num_gt_files; i++)
@@ -4306,11 +4329,11 @@ main (int argc, char **argv)
     dump_everything ();
 
   if (plugin_files)
-  {
-    for (i = 0; i < nb_plugin_files; i++)
-      free (plugin_files[i] - sizeof (lang_bitmap));
-    free (plugin_files);
-  }
+    {
+      for (i = 0; i < nb_plugin_files; i++)
+	free (plugin_files[i] - sizeof (lang_bitmap));
+      free (plugin_files);
+    }
 
   if (hit_error)
     return 1;
Index: gcc/gengtype.h
===================================================================
--- gcc/gengtype.h	(revision 164568)
+++ gcc/gengtype.h	(working copy)
@@ -1,28 +1,29 @@
 /* Process source files and output type information.
    Copyright (C) 2002, 2003, 2004, 2007, 2008 Free Software Foundation, Inc.
 
-This file is part of GCC.
+   This file is part of GCC.
 
-GCC is free software; you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free
-Software Foundation; either version 3, or (at your option) any later
-version.
+   GCC is free software; you can redistribute it and/or modify it under
+   the terms of the GNU General Public License as published by the Free
+   Software Foundation; either version 3, or (at your option) any later
+   version.
 
-GCC is distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-for more details.
+   GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+   WARRANTY; without even the implied warranty of MERCHANTABILITY or
+   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+   for more details.
 
-You should have received a copy of the GNU General Public License
-along with GCC; see the file COPYING3.  If not see
-<http://www.gnu.org/licenses/>.  */
+   You should have received a copy of the GNU General Public License
+   along with GCC; see the file COPYING3.  If not see
+   <http://www.gnu.org/licenses/>.  */
 
 #ifndef GCC_GENGTYPE_H
 #define GCC_GENGTYPE_H
 
 /* A file position, mostly for error messages.
    The FILE element may be compared using pointer equality.  */
-struct fileloc {
+struct fileloc
+{
   const char *file;
   int line;
 };
@@ -39,10 +40,12 @@ extern struct fileloc lexer_line;
 
 /* Print an error message.  */
 extern void error_at_line
-  (const struct fileloc *pos, const char *msg, ...) ATTRIBUTE_PRINTF_2;
+(const struct fileloc *pos, const char *msg, ...) ATTRIBUTE_PRINTF_2;
 
 /* Like asprintf, but calls fatal() on out of memory.  */
-extern char *xasprintf(const char *, ...) ATTRIBUTE_PRINTF_1;
+extern char *
+xasprintf (const char *, ...)
+  ATTRIBUTE_PRINTF_1;
 
 /* Constructor routines for types.  */
 extern void do_typedef (const char *s, type_p t, struct fileloc *pos);
@@ -55,11 +58,14 @@ extern type_p find_structure (const char *s, int i
 extern type_p create_scalar_type (const char *name);
 extern type_p create_pointer (type_p t);
 extern type_p create_array (type_p t, const char *len);
-extern options_p create_option (options_p, const char *name, const void *info);
+extern options_p create_option (options_p, const char *name,
+				const void *info);
 extern options_p create_nested_ptr_option (options_p, type_p t,
-					   const char *from, const char *to);
-extern pair_p create_field_at (pair_p next, type_p type, const char *name,
-			       options_p opt, struct fileloc *pos);
+					   const char *from,
+					   const char *to);
+extern pair_p create_field_at (pair_p next, type_p type,
+			       const char *name, options_p opt,
+			       struct fileloc *pos);
 extern pair_p nreverse_pairs (pair_p list);
 extern type_p adjust_field_type (type_p, options_p);
 extern void note_variable (const char *s, type_p t, options_p o,
@@ -77,37 +83,38 @@ extern void parse_file (const char *name);
 extern bool hit_error;
 
 /* Token codes.  */
-enum {
-  EOF_TOKEN = 0,
+enum
+  {
+    EOF_TOKEN = 0,
 
-  /* Per standard convention, codes in the range (0, UCHAR_MAX]
-     represent single characters with those character codes.  */
+    /* Per standard convention, codes in the range (0, UCHAR_MAX]
+       represent single characters with those character codes.  */
 
-  CHAR_TOKEN_OFFSET = UCHAR_MAX + 1,
-  GTY_TOKEN = CHAR_TOKEN_OFFSET,
-  TYPEDEF,
-  EXTERN,
-  STATIC,
-  UNION,
-  STRUCT,
-  ENUM,
-  VEC_TOKEN,
-  DEFVEC_OP,
-  DEFVEC_I,
-  DEFVEC_ALLOC,
-  ELLIPSIS,
-  PTR_ALIAS,
-  NESTED_PTR,
-  PARAM_IS,
-  NUM,
-  SCALAR,
-  ID,
-  STRING,
-  CHAR,
-  ARRAY,
+    CHAR_TOKEN_OFFSET = UCHAR_MAX + 1,
+    GTY_TOKEN = CHAR_TOKEN_OFFSET,
+    TYPEDEF,
+    EXTERN,
+    STATIC,
+    UNION,
+    STRUCT,
+    ENUM,
+    VEC_TOKEN,
+    DEFVEC_OP,
+    DEFVEC_I,
+    DEFVEC_ALLOC,
+    ELLIPSIS,
+    PTR_ALIAS,
+    NESTED_PTR,
+    PARAM_IS,
+    NUM,
+    SCALAR,
+    ID,
+    STRING,
+    CHAR,
+    ARRAY,
 
-  /* print_token assumes that any token >= FIRST_TOKEN_WITH_VALUE may have
-     a meaningful value to be printed.  */
-  FIRST_TOKEN_WITH_VALUE = PARAM_IS
-};
+    /* print_token assumes that any token >= FIRST_TOKEN_WITH_VALUE may have
+       a meaningful value to be printed.  */
+    FIRST_TOKEN_WITH_VALUE = PARAM_IS
+  };
 #endif
Index: gcc/gengtype-parse.c
===================================================================
--- gcc/gengtype-parse.c	(revision 164568)
+++ gcc/gengtype-parse.c	(working copy)
@@ -1,21 +1,21 @@
 /* Process source files and output type information.
    Copyright (C) 2006, 2007 Free Software Foundation, Inc.
 
-This file is part of GCC.
+   This file is part of GCC.
 
-GCC is free software; you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free
-Software Foundation; either version 3, or (at your option) any later
-version.
+   GCC is free software; you can redistribute it and/or modify it under
+   the terms of the GNU General Public License as published by the Free
+   Software Foundation; either version 3, or (at your option) any later
+   version.
 
-GCC is distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-for more details.
+   GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+   WARRANTY; without even the implied warranty of MERCHANTABILITY or
+   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+   for more details.
 
-You should have received a copy of the GNU General Public License
-along with GCC; see the file COPYING3.  If not see
-<http://www.gnu.org/licenses/>.  */
+   You should have received a copy of the GNU General Public License
+   along with GCC; see the file COPYING3.  If not see
+   <http://www.gnu.org/licenses/>.  */
 
 #include "bconfig.h"
 #include "system.h"
@@ -113,7 +113,7 @@ print_token (int code, const char *value)
   else if (code < FIRST_TOKEN_WITH_VALUE)
     return xasprintf ("'%s'", token_names[code - CHAR_TOKEN_OFFSET]);
   else if (!value)
-    return token_names[code - CHAR_TOKEN_OFFSET]; /* don't quote these */
+    return token_names[code - CHAR_TOKEN_OFFSET];	/* don't quote these */
   else
     return xasprintf (token_value_format[code - FIRST_TOKEN_WITH_VALUE],
 		      value);
@@ -199,7 +199,7 @@ string_seq (void)
 
       l1 = strlen (s1);
       l2 = strlen (s2);
-      buf = XRESIZEVEC (char, CONST_CAST(char *, s1), l1 + l2 + 1);
+      buf = XRESIZEVEC (char, CONST_CAST (char *, s1), l1 + l2 + 1);
       memcpy (buf + l1, s2, l2 + 1);
       XDELETE (CONST_CAST (char *, s2));
       s1 = buf;
@@ -222,7 +222,7 @@ typedef_name (void)
       require (',');
       c2 = require (ID);
       require (')');
-      r = concat ("VEC_", c1, "_", c2, (char *)0);
+      r = concat ("VEC_", c1, "_", c2, (char *) 0);
       free (CONST_CAST (char *, c1));
       free (CONST_CAST (char *, c2));
       return r;
@@ -239,10 +239,18 @@ consume_balanced (int opener, int closer)
   for (;;)
     switch (token ())
       {
-      default: advance (); break;
-      case '(': consume_balanced ('(',')'); break;
-      case '[': consume_balanced ('[',']'); break;
-      case '{': consume_balanced ('{','}'); break;
+      default:
+	advance ();
+	break;
+      case '(':
+	consume_balanced ('(', ')');
+	break;
+      case '[':
+	consume_balanced ('[', ']');
+	break;
+      case '{':
+	consume_balanced ('{', '}');
+	break;
 
       case '}':
       case ']':
@@ -250,8 +258,8 @@ consume_balanced (int opener, int closer)
 	if (token () != closer)
 	  parse_error ("unbalanced delimiters - expected '%c', have '%c'",
 		       closer, token ());
-	advance ();
-	return;
+      advance ();
+      return;
 
       case EOF_TOKEN:
 	parse_error ("unexpected end of file within %c%c-delimited construct",
@@ -272,18 +280,28 @@ consume_until_semi (bool immediate)
   for (;;)
     switch (token ())
       {
-      case ';':	advance (); return;
-      default:	advance (); break;
+      case ';':
+	advance ();
+	return;
+      default:
+	advance ();
+	break;
 
-      case '(':	consume_balanced ('(',')'); break;
-      case '[': consume_balanced ('[',']'); break;
-      case '{':	consume_balanced ('{','}'); break;
+      case '(':
+	consume_balanced ('(', ')');
+	break;
+      case '[':
+	consume_balanced ('[', ']');
+	break;
+      case '{':
+	consume_balanced ('{', '}');
+	break;
 
       case '}':
       case ']':
       case ')':
 	parse_error ("unmatched '%c' while scanning for ';'", token ());
-	return;
+      return;
 
       case EOF_TOKEN:
 	parse_error ("unexpected end of file while scanning for ';'");
@@ -304,28 +322,40 @@ consume_until_comma_or_semi (bool immediate)
   for (;;)
     switch (token ())
       {
-      case ',':	advance (); return true;
-      case ';':	advance (); return false;
-      default:	advance (); break;
+      case ',':
+	advance ();
+	return true;
+      case ';':
+	advance ();
+	return false;
+      default:
+	advance ();
+	break;
 
-      case '(':	consume_balanced ('(',')'); break;
-      case '[': consume_balanced ('[',']'); break;
-      case '{':	consume_balanced ('{','}'); break;
+      case '(':
+	consume_balanced ('(', ')');
+	break;
+      case '[':
+	consume_balanced ('[', ']');
+	break;
+      case '{':
+	consume_balanced ('{', '}');
+	break;
 
       case '}':
       case ']':
       case ')':
 	parse_error ("unmatched '%s' while scanning for ',' or ';'",
 		     print_cur_token ());
-	return false;
+      return false;
 
       case EOF_TOKEN:
 	parse_error ("unexpected end of file while scanning for ',' or ';'");
 	return false;
       }
 }
+
 
-
 /* GTY(()) option handling.  */
 static type_p type (options_p *optsp, bool nested);
 
@@ -401,11 +431,11 @@ nestedptr_optvalue (options_p prev)
 }
 
 /* One GTY(()) option:
-         ID str_optvalue_opt
-       | PTR_ALIAS type_optvalue
-       | PARAM_IS type_optvalue
-       | NESTED_PTR nestedptr_optvalue
- */
+   ID str_optvalue_opt
+   | PTR_ALIAS type_optvalue
+   | PARAM_IS type_optvalue
+   | NESTED_PTR nestedptr_optvalue
+*/
 static options_p
 option (options_p prev)
 {
@@ -426,8 +456,7 @@ option (options_p prev)
       return nestedptr_optvalue (prev);
 
     default:
-      parse_error ("expected an option keyword, have %s",
-		   print_cur_token ());
+      parse_error ("expected an option keyword, have %s", print_cur_token ());
       advance ();
       return create_option (prev, "", "");
     }
@@ -479,9 +508,9 @@ gtymarker_opt (void)
    we don't have to do it.  */
 
 /* array_and_function_declarators_opt:
-      \epsilon
-      array_and_function_declarators_opt ARRAY
-      array_and_function_declarators_opt '(' ... ')'
+   \epsilon
+   array_and_function_declarators_opt ARRAY
+   array_and_function_declarators_opt '(' ... ')'
 
    where '...' indicates stuff we ignore except insofar as grouping
    symbols ()[]{} must balance.
@@ -510,8 +539,8 @@ array_and_function_declarators_opt (type_p ty)
 static type_p inner_declarator (type_p, const char **, options_p *);
 
 /* direct_declarator:
-      '(' inner_declarator ')'
-      gtymarker_opt ID array_and_function_declarators_opt
+   '(' inner_declarator ')'
+   gtymarker_opt ID array_and_function_declarators_opt
 
    Subroutine of declarator, mutually recursive with inner_declarator;
    do not use elsewhere.  */
@@ -550,7 +579,7 @@ direct_declarator (type_p ty, const char **namep,
 /* The difference between inner_declarator and declarator is in the
    handling of stars.  Consider this declaration:
 
-      char * (*pfc) (void)
+   char * (*pfc) (void)
 
    It declares a pointer to a function that takes no arguments and
    returns a char*.  To construct the correct type for this
@@ -562,8 +591,8 @@ direct_declarator (type_p ty, const char **namep,
    creating pointers.  */
 
 /* inner_declarator:
-     '*' inner_declarator
-     direct_declarator
+   '*' inner_declarator
+   direct_declarator
 
    Mutually recursive subroutine of direct_declarator; do not use
    elsewhere.  */
@@ -609,13 +638,13 @@ declarator (type_p ty, const char **namep, options
 
 /* Structure field(s) declaration:
    (
-       type bitfield ';'
-     | type declarator bitfield? ( ',' declarator bitfield? )+ ';'
+   type bitfield ';'
+   | type declarator bitfield? ( ',' declarator bitfield? )+ ';'
    )+
 
    Knows that such declarations must end with a close brace (or,
    erroneously, at EOF).
- */
+*/
 static pair_p
 struct_field_seq (void)
 {
@@ -666,7 +695,7 @@ struct_field_seq (void)
 /* This is called type(), but what it parses (sort of) is what C calls
    declaration-specifiers and specifier-qualifier-list:
 
-     SCALAR
+   SCALAR
    | ID     // typedef
    | (STRUCT|UNION) ID? gtymarker? ( '{' gtymarker? struct_field_seq '}' )?
    | ENUM ID ( '{' ... '}' )?
@@ -674,7 +703,7 @@ struct_field_seq (void)
    Returns a partial type; under some conditions (notably
    "struct foo GTY((...)) thing;") it may write an options
    structure to *OPTSP.
- */
+*/
 static type_p
 type (options_p *optsp, bool nested)
 {
@@ -695,15 +724,16 @@ type (options_p *optsp, bool nested)
     case UNION:
       {
 	options_p opts = 0;
-    /* GTY annotations follow attribute syntax
-       GTY_BEFORE_ID is for union/struct declarations
-       GTY_AFTER_ID is for variable declarations.  */
-    enum {
-        NO_GTY,
-        GTY_BEFORE_ID,
-        GTY_AFTER_ID
-    } is_gty = NO_GTY;
-    bool is_union = (token () == UNION);
+	/* GTY annotations follow attribute syntax
+	   GTY_BEFORE_ID is for union/struct declarations
+	   GTY_AFTER_ID is for variable declarations.  */
+	enum
+	{
+	  NO_GTY,
+	  GTY_BEFORE_ID,
+	  GTY_AFTER_ID
+	} is_gty = NO_GTY;
+	bool is_union = (token () == UNION);
 	advance ();
 
 	/* Top-level structures that are not explicitly tagged GTY(())
@@ -713,8 +743,8 @@ type (options_p *optsp, bool nested)
 	   that we can't handle.  */
 	if (nested || token () == GTY_TOKEN)
 	  {
-        is_gty = GTY_BEFORE_ID;
-        opts = gtymarker_opt ();
+	    is_gty = GTY_BEFORE_ID;
+	    opts = gtymarker_opt ();
 	  }
 
 	if (token () == ID)
@@ -722,31 +752,31 @@ type (options_p *optsp, bool nested)
 	else
 	  s = xasprintf ("anonymous:%s:%d", lexer_line.file, lexer_line.line);
 
-        /* Unfortunately above GTY_TOKEN check does not capture the
-           typedef struct_type GTY case.  */
+	/* Unfortunately above GTY_TOKEN check does not capture the
+	   typedef struct_type GTY case.  */
 	if (token () == GTY_TOKEN)
 	  {
-        is_gty = GTY_AFTER_ID;
-        opts = gtymarker_opt ();
+	    is_gty = GTY_AFTER_ID;
+	    opts = gtymarker_opt ();
 	  }
 
-    if (is_gty)
-      {
-        if (token () == '{')
-          {
-            pair_p fields;
+	if (is_gty)
+	  {
+	    if (token () == '{')
+	      {
+		pair_p fields;
 
-            if (is_gty == GTY_AFTER_ID)
-                parse_error ("GTY must be specified before identifier");
+		if (is_gty == GTY_AFTER_ID)
+		  parse_error ("GTY must be specified before identifier");
 
-            advance ();
-            fields = struct_field_seq ();
-            require ('}');
-            return new_structure (s, is_union, &lexer_line, fields, opts);
-          }
-      }
-    else if (token () == '{')
-      consume_balanced ('{', '}');
+		advance ();
+		fields = struct_field_seq ();
+		require ('}');
+		return new_structure (s, is_union, &lexer_line, fields, opts);
+	      }
+	  }
+	else if (token () == '{')
+	  consume_balanced ('{', '}');
 	if (opts)
 	  *optsp = opts;
 	return find_structure (s, is_union);
@@ -754,13 +784,13 @@ type (options_p *optsp, bool nested)
 
     case ENUM:
       advance ();
-	if (token () == ID)
-	  s = advance ();
-	else
-	  s = xasprintf ("anonymous:%s:%d", lexer_line.file, lexer_line.line);
+      if (token () == ID)
+	s = advance ();
+      else
+	s = xasprintf ("anonymous:%s:%d", lexer_line.file, lexer_line.line);
 
       if (token () == '{')
-	consume_balanced ('{','}');
+	consume_balanced ('{', '}');
       return create_scalar_type (s);
 
     default:
@@ -821,7 +851,7 @@ struct_or_union (void)
 }
 
 /* GC root declaration:
-     (extern|static) gtymarker? type ID array_declarators_opt (';'|'=')
+   (extern|static) gtymarker? type ID array_declarators_opt (';'|'=')
    If the gtymarker is not present, we ignore the rest of the declaration.  */
 static void
 extern_or_static (void)
@@ -838,8 +868,8 @@ extern_or_static (void)
     }
 
   opts = gtymarker ();
-  ty   = type (&opts2, true);  /* if we get here, it's got a GTY(()) */
-  dty  = declarator (ty, &name, &dopts);
+  ty = type (&opts2, true);	/* if we get here, it's got a GTY(()) */
+  dty = declarator (ty, &name, &dopts);
 
   if ((opts && dopts) || (opts && opts2) || (opts2 && dopts))
     parse_error ("GTY((...)) specified more than once for %s", name);
@@ -864,7 +894,7 @@ extern_or_static (void)
 static void
 def_vec (void)
 {
-  bool is_scalar = (token() == DEFVEC_I);
+  bool is_scalar = (token () == DEFVEC_I);
   const char *type;
 
   require2 (DEFVEC_OP, DEFVEC_I);
