aboutsummaryrefslogtreecommitdiff
path: root/gcc/java/jvgenmain.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/java/jvgenmain.c')
-rw-r--r--gcc/java/jvgenmain.c51
1 files changed, 35 insertions, 16 deletions
diff --git a/gcc/java/jvgenmain.c b/gcc/java/jvgenmain.c
index 5e767afffe6..0f9e6287827 100644
--- a/gcc/java/jvgenmain.c
+++ b/gcc/java/jvgenmain.c
@@ -27,6 +27,10 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */
#include "config.h"
#include "system.h"
#include "obstack.h"
+#include "gansidecl.h"
+#include "jcf.h"
+#include "tree.h"
+#include "java-tree.h"
const char main_method_prefix[] = "main__";
const char main_method_suffix[] = "Pt6JArray1ZPQ34java4lang6String";
@@ -34,24 +38,25 @@ const char class_mangling_prefix[] = "_CL_";
struct obstack name_obstack;
-void
-error (const char *str)
-{
- fprintf (stderr, "%s\n", str);
- exit (-1);
-}
+extern void error PVPROTO ((const char *, ...))
+ ATTRIBUTE_PRINTF_1;
-void *
-xmalloc (size)
- size_t size;
+void
+error VPROTO((const char *msgid, ...))
{
- void *ptr = malloc (size);
- if (ptr == NULL)
- {
- fprintf (stderr, "Not enough memory!\n");
- exit (-1);
- }
- return ptr;
+#ifndef ANSI_PROTOTYPES
+ const char *msgid;
+#endif
+ va_list ap;
+
+ VA_START (ap, msgid);
+
+#ifndef ANSI_PROTOTYPES
+ msgid = va_arg (ap, const char *);
+#endif
+
+ vfprintf (stderr, msgid, ap);
+ va_end (ap);
}
void
@@ -121,3 +126,17 @@ main (int argc, const char **argv)
}
return 0;
}
+
+PTR
+xmalloc (size)
+ size_t size;
+{
+ register PTR val = (PTR) malloc (size);
+
+ if (val == 0)
+ {
+ fprintf(stderr, "jvgenmain: virtual memory exhausted");
+ exit(FATAL_EXIT_CODE);
+ }
+ return val;
+}