OSDN Git Service

* config/mips/mips.md (mulsidi3_32bit_r4000): Fix the clobber list.
[pf3gnuchains/gcc-fork.git] / gcc / gengtype.c
index 85e856f..3912c99 100644 (file)
@@ -644,17 +644,6 @@ adjust_field_tree_exp (type_p t, options_p opt ATTRIBUTE_UNUSED)
 {
   pair_p flds;
   options_p nodot;
-  size_t i;
-  static const struct {
-    const char *name;
-    int first_rtl;
-    int num_rtl;
-  } data[] = {
-    { "SAVE_EXPR", 2, 1 },
-    { "GOTO_SUBROUTINE_EXPR", 0, 2 },
-    { "RTL_EXPR", 0, 2 },
-    { "WITH_CLEANUP_EXPR", 2, 1 },
-  };
 
   if (t->kind != TYPE_ARRAY)
     {
@@ -686,44 +675,6 @@ adjust_field_tree_exp (type_p t, options_p opt ATTRIBUTE_UNUSED)
     flds->opt->info = "";
   }
 
-  for (i = 0; i < ARRAY_SIZE (data); i++)
-    {
-      pair_p old_flds = flds;
-      pair_p subfields = NULL;
-      int r_index;
-      const char *sname;
-
-      for (r_index = 0;
-          r_index < data[i].first_rtl + data[i].num_rtl;
-          r_index++)
-       {
-         pair_p old_subf = subfields;
-         subfields = xmalloc (sizeof (*subfields));
-         subfields->next = old_subf;
-         subfields->name = xasprintf ("[%d]", r_index);
-         if (r_index < data[i].first_rtl)
-           subfields->type = t->u.a.p;
-         else
-           subfields->type = create_pointer (find_structure ("rtx_def", 0));
-         subfields->line.file = __FILE__;
-         subfields->line.line = __LINE__;
-         subfields->opt = nodot;
-       }
-
-      flds = xmalloc (sizeof (*flds));
-      flds->next = old_flds;
-      flds->name = "";
-      sname = xasprintf ("tree_exp_%s", data[i].name);
-      new_structure (sname, 0, &lexer_line, subfields, NULL);
-      flds->type = find_structure (sname, 0);
-      flds->line.file = __FILE__;
-      flds->line.line = __LINE__;
-      flds->opt = xmalloc (sizeof (*flds->opt));
-      flds->opt->next = nodot;
-      flds->opt->name = "tag";
-      flds->opt->info = data[i].name;
-    }
-
   new_structure ("tree_exp_subunion", 1, &lexer_line, flds, nodot);
   return find_structure ("tree_exp_subunion", 1);
 }
@@ -1104,7 +1055,7 @@ open_base_files (void)
     /* The order of files here matters very much.  */
     static const char *const ifiles [] = {
       "config.h", "system.h", "coretypes.h", "tm.h", "varray.h", 
-      "hashtab.h", "splay-tree.h", "bitmap.h", "tree.h", "rtl.h",
+      "hashtab.h", "splay-tree.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",
@@ -2988,6 +2939,10 @@ main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED)
   do_scalar_typedef ("uint8", &pos);
   do_scalar_typedef ("jword", &pos);
   do_scalar_typedef ("JCF_u2", &pos);
+#ifdef USE_MAPPED_LOCATION
+  do_scalar_typedef ("location_t", &pos);
+  do_scalar_typedef ("source_locus", &pos);
+#endif
   do_scalar_typedef ("void", &pos);
 
   do_typedef ("PTR", create_pointer (resolve_typedef ("void", &pos)), &pos);
@@ -3010,6 +2965,12 @@ main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED)
         }
       if (!dupflag)
         parse_file (all_files[i]);
+#ifndef USE_MAPPED_LOCATION
+      /* temporary kludge - gengtype doesn't handle conditionals.
+        Manually add source_locus *after* we've processed input.h. */
+      if (i == 0)
+       do_typedef ("source_locus", create_pointer (resolve_typedef ("location_t", &pos)), &pos);
+#endif
     }
 
   if (hit_error != 0)