blob: 08da647e30eba83bd6f9cad8bd8589ef446fa0d1 [file] [log] [blame]
#include <ansidecl.h>
#ifdef __STDC__
#include <stddef.h>
#define clock_t unsigned long
#define DEF(NAME, RETURN_TYPE, ARGLIST, ARGS) extern RETURN_TYPE NAME (ARGS);
#define DEFFUNC(NAME, RETURN_TYPE, ARGLIST, ARGS) extern RETURN_TYPE NAME (ARGS);
#else
#define void int
#define size_t unsigned long
#define clock_t unsigned long
#define DEF(NAME, RETURN_TYPE, ARGLIST, ARGS) extern RETURN_TYPE NAME ();
#define DEFFUNC(NAME, RETURN_TYPE, ARGLIST, ARGS) extern RETURN_TYPE NAME ();
#endif
#define DEFVAR(NAME,DECL,USE) extern DECL;
#define NOTHING /*nothing*/
#include "alloca-conf.h"
#include "functions.def"
/* Always use our: getopt.o getopt1.o obstack.o spaces.o */
int
main (argc, argv)
int argc; char **argv;
{
/* Create a dummy function call for each DEF-defined function. */
#undef DEF
#undef DEFVAR
#undef DEFFUNC
#undef AND
#define AND = 0;
/* ARGS expands into a set of declaration. NAME ARG_LIST expands
info a function call that uses those variables as actual parameters.
If the function has been DEF'ed correctly, we can pass the right
number and types of parameters, which is nice. (E.g. gcc may
otherwise complain about the wrong number of parameters to certain
builtins.) */
#define DEF(NAME, RETURN_TYPE, ARG_LIST, ARGS) { ARGS; NAME ARG_LIST; }
#define DEFVAR(NAME, DECL, USE) { USE; }
#define DEFFUNC(NAME, RETURN_TYPE, ARG_LIST, ARGS) { ARGS; NAME ARG_LIST; }
#include "functions.def"
return (0);
}