aboutsummaryrefslogtreecommitdiff
path: root/libiberty/dummy.c
diff options
context:
space:
mode:
Diffstat (limited to 'libiberty/dummy.c')
-rw-r--r--libiberty/dummy.c49
1 files changed, 49 insertions, 0 deletions
diff --git a/libiberty/dummy.c b/libiberty/dummy.c
new file mode 100644
index 00000000000..08da647e30e
--- /dev/null
+++ b/libiberty/dummy.c
@@ -0,0 +1,49 @@
+#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);
+}