/* Process source files and output type information.
- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GCC.
NOTE_INSN_MAX
};
-static const char *const note_insn_name[NOTE_INSN_MAX] = {
+/* 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] = {
#define DEF_INSN_NOTE(NAME) #NAME,
#include "insn-notes.def"
#undef DEF_INSN_NOTE
/* 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", "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",
- "tree-flow.h", "reload.h",
- "cpp-id-data.h",
- "tree-chrec.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",
+ "tree-flow.h", "reload.h", "cpp-id-data.h", "tree-chrec.h",
NULL
};
const char *const *ifp;
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, "",
+ 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);
oprintf (d->of, "%*s{\n", d->indent, "");
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, "",
+ oprintf (d->of, "%*sfor (i%d = 0; i%d != (size_t)(", d->indent, "",
loopcounter, loopcounter);
if (length)
output_escaped_param (d, length, "length");
}
else
oprintf (d->of, ", gt_%sa_%s", wtd->param_prefix, d->prev_val[0]);
+
+ if (f->u.p->kind == TYPE_PARAM_STRUCT
+ && f->u.p->u.s.line.file != NULL)
+ {
+ 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)
+ {
+ oprintf (d->of, ", gt_ggc_e_");
+ output_mangled_typename (d->of, f);
+ }
+ else
+ oprintf (d->of, ", gt_types_enum_last");
}
oprintf (d->of, ");\n");
if (d->reorder_fn && wtd->reorder_note_routine)
{
oprintf (d.of, ", x, gt_%s_", wtd->param_prefix);
output_mangled_typename (d.of, orig_s);
+
+ if (orig_s->u.p->kind == TYPE_PARAM_STRUCT
+ && orig_s->u.p->u.s.line.file != NULL)
+ {
+ oprintf (d.of, ", gt_e_");
+ output_mangled_typename (d.of, orig_s);
+ }
+ else if (UNION_OR_STRUCT_P (orig_s)
+ && orig_s->u.s.line.file != NULL)
+ {
+ oprintf (d.of, ", gt_ggc_e_");
+ output_mangled_typename (d.of, orig_s);
+ }
+ else
+ oprintf (d.of, ", gt_types_enum_last");
}
oprintf (d.of, "))\n");
}
{
oprintf (d.of, ", xlimit, gt_%s_", wtd->param_prefix);
output_mangled_typename (d.of, orig_s);
+
+ if (orig_s->u.p->kind == TYPE_PARAM_STRUCT
+ && orig_s->u.p->u.s.line.file != NULL)
+ {
+ oprintf (d.of, ", gt_e_");
+ output_mangled_typename (d.of, orig_s);
+ }
+ else if (UNION_OR_STRUCT_P (orig_s)
+ && orig_s->u.s.line.file != NULL)
+ {
+ oprintf (d.of, ", gt_ggc_e_");
+ output_mangled_typename (d.of, orig_s);
+ }
+ else
+ oprintf (d.of, ", gt_types_enum_last");
}
oprintf (d.of, "))\n");
oprintf (d.of, " xlimit = (");
{
oprintf (d.of, ", xprev, gt_%s_", wtd->param_prefix);
output_mangled_typename (d.of, orig_s);
+
+ if (orig_s->u.p->kind == TYPE_PARAM_STRUCT
+ && orig_s->u.p->u.s.line.file != NULL)
+ {
+ oprintf (d.of, ", gt_e_");
+ output_mangled_typename (d.of, orig_s);
+ }
+ else if (UNION_OR_STRUCT_P (orig_s)
+ && orig_s->u.s.line.file != NULL)
+ {
+ oprintf (d.of, ", gt_ggc_e_");
+ output_mangled_typename (d.of, orig_s);
+ }
+ else
+ oprintf (d.of, ", gt_types_enum_last");
}
oprintf (d.of, ");\n");
oprintf (d.of, " }\n");