/* Process target.def to create initialization macros definition in
target-hooks-def.h and documentation in target-hooks.texi.
- Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc.
+ Copyright (C) 2009-2015 Free Software Foundation, Inc.
This file is part of GCC.
<http://www.gnu.org/licenses/>. */
#include "bconfig.h"
#include "system.h"
-#include "hashtab.h"
#include "errors.h"
struct hook_desc { const char *doc, *type, *name, *param, *init, *docname; };
{ "*", #TYPE, HOOK_PREFIX #NAME, #PARAMS, #INIT, HOOK_TYPE },
#include "target.def"
#include "c-family/c-target.def"
+#include "common/common-target.def"
#undef DEFHOOK
};
-/* For each @Fcode in the the first paragraph of the documentation string DOC,
+/* For each @Fcode in the first paragraph of the documentation string DOC,
print an @findex directive. HOOK_NAME is the name of the hook this bit of
documentation pertains to. */
static void
}
/* Read the documentation file with name IN_FNAME, perform substitutions
- to incorporate informtion from hook_array, and emit the result on stdout.
+ to incorporate information from hook_array, and emit the result on stdout.
Hooks defined with DEFHOOK / DEFHOOKPOD are emitted at the place of a
matching @hook in the input file; if there is no matching @hook, the
hook is emitted after the hook that precedes it in target.def .
char buf[1000];
htab_t start_hooks = htab_create (99, s_hook_hash, s_hook_eq_p, (htab_del) 0);
FILE *f;
- bool found_start = false;
/* Enter all the start hooks in start_hooks. */
f = fopen (in_fname, "r");
if (shp->pos >= 0)
fatal ("Duplicate hook %s\n", sh.name);
shp->pos = i;
- found_start = true;
}
- else if (!found_start)
+ else
fatal ("No place specified to document hook %s\n", sh.name);
free (sh.name);
}
int
main (int argc, char **argv)
{
+ progname = "genhooks";
+
if (argc >= 3)
emit_documentation (argv[2]);
else