+2000-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * gjavah.c (NEED_PEEK_ATTRIBUTE, NEED_SKIP_ATTRIBUTE): Define
+
+ * jcf-reader.c (peek_attribute, skip_attribute): Only define
+ when requested.
+
+ * parse.h (yyerror): If JC1_LITE, mark with ATTRIBUTE_NORETURN.
+
+ * verify.c (CHECK_PC_IN_RANGE): Cast result of stmt-expr to void.
+
2000-10-16 Tom Tromey <tromey@cygnus.com>
* jvspec.c (lang_specific_driver): Recognize -MF and -MT.
if (out && method_printed && !method_synthetic) \
fputs (decompiled || stubs ? "\n" : ";\n", out);
+/* We're going to need {peek,skip}_attribute, enable their definition. */
+#define NEED_PEEK_ATTRIBUTE
+#define NEED_SKIP_ATTRIBUTE
+
#include "jcf-reader.c"
/* Some useful constants. */
#include "zipfile.h"
static int get_attribute PARAMS ((JCF *));
-static int peek_attribute PARAMS ((JCF *, int, const char *, int));
-static void skip_attribute PARAMS ((JCF *, int));
static int jcf_parse_preamble PARAMS ((JCF *));
static int jcf_parse_constant_pool PARAMS ((JCF *));
static void jcf_parse_class PARAMS ((JCF *));
static int jcf_parse_one_method PARAMS ((JCF *));
static int jcf_parse_methods PARAMS ((JCF *));
static int jcf_parse_final_attributes PARAMS ((JCF *));
+#ifdef NEED_PEEK_ATTRIBUTE
+static int peek_attribute PARAMS ((JCF *, int, const char *, int));
+#endif
+#ifdef NEED_SKIP_ATTRIBUTE
+static void skip_attribute PARAMS ((JCF *, int));
+#endif
/* Go through all available attribute (ATTRIBUTE_NUMER) and try to
identify PEEKED_NAME. Return 1 if PEEKED_NAME was found, 0
otherwise. JCF is restored to its initial position before
returning. */
+#ifdef NEED_PEEK_ATTRIBUTE /* Not everyone uses this function */
static int
peek_attribute (jcf, attribute_number, peeked_name, peeked_name_length)
JCF *jcf;
JCF_SEEK (jcf, absolute_offset);
return to_return;
}
+#endif
+#ifdef NEED_SKIP_ATTRIBUTE /* Not everyone uses this function */
static void
skip_attribute (jcf, number_of_attribute)
JCF *jcf;
JCF_SKIP (jcf, JCF_readu4 (jcf));
}
}
+#endif
static int
DEFUN(get_attribute, (jcf),
extern void java_parser_context_restore_global PARAMS ((void));
int yyparse PARAMS ((void));
extern int java_parse PARAMS ((void));
-void yyerror PARAMS ((const char *));
+extern void yyerror PARAMS ((const char *))
+#ifdef JC1_LITE
+ATTRIBUTE_NORETURN
+#endif
+;
extern void java_expand_classes PARAMS ((void));
#endif
goto verify_error; } while (0)
#ifdef __GNUC__
-#define CHECK_PC_IN_RANGE(PC) ({if (PC < 0 || PC > length) goto bad_pc; 1;})
+#define CHECK_PC_IN_RANGE(PC) ({if (PC < 0 || PC > length) goto bad_pc; (void)1;})
#else
#define CHECK_PC_IN_RANGE(PC) (PC < 0 || PC > length ? \
(fatal("Bad byte codes.\n"), 0) : 1)