Commit 7cefa0c1 by Steven Bosscher Committed by Steven Bosscher

class.c (ident_subst): Always alloca buffer.

	* class.c (ident_subst): Always alloca buffer.
	* java-opcodes.h (LAST_AND_UNUSED_JAVA_OPCODE): Add this dummy
	opcode after including javaop.def.
	* jcf-dump.c (CHECK_PC_IN_RANGE): Return 0 from the arm of the
	conditional expression that exits, to avoid warnings.
	* verify.c (CHECK_PC_IN_RANGE): Mark the __GNUC__ definition as
	a user of an extension.
	* win32-host.c: Move check down to have non-empty file when
	WIN32 is not defined.

	* Make-lang.in (java-warn): Add STRICT_WARN.
	(java/jcf-io.o-warn): Don't have Werror for this file.
	* jcf-io.c (caching_stat): Add FIXME for non-POSIX scandir use.

From-SVN: r89184
parent 7c672dfc
2004-10-17 Steven Bosscher <stevenb@suse.de>
* class.c (ident_subst): Always alloca buffer.
* java-opcodes.h (LAST_AND_UNUSED_JAVA_OPCODE): Add this dummy
opcode after including javaop.def.
* jcf-dump.c (CHECK_PC_IN_RANGE): Return 0 from the arm of the
conditional expression that exits, to avoid warnings.
* verify.c (CHECK_PC_IN_RANGE): Mark the __GNUC__ definition as
a user of an extension.
* win32-host.c: Move check down to have non-empty file when
WIN32 is not defined.
* Make-lang.in (java-warn): Add STRICT_WARN.
(java/jcf-io.o-warn): Don't have Werror for this file.
* jcf-io.c (caching_stat): Add FIXME for non-POSIX scandir use.
2004-10-16 Hans-Peter Nilsson <hp@bitrange.com> 2004-10-16 Hans-Peter Nilsson <hp@bitrange.com>
* expr.c (expr_add_location): Move declaration to before all * expr.c (expr_add_location): Move declaration to before all
......
...@@ -118,11 +118,15 @@ JCFDUMP_OBJS = java/jcf-dump.o java/jcf-io.o java/jcf-depend.o java/jcf-path.o \ ...@@ -118,11 +118,15 @@ JCFDUMP_OBJS = java/jcf-dump.o java/jcf-io.o java/jcf-depend.o java/jcf-path.o \
JVGENMAIN_OBJS = java/jvgenmain.o java/mangle_name.o errors.o intl.o JVGENMAIN_OBJS = java/jvgenmain.o java/mangle_name.o errors.o intl.o
# Use loose warnings for this front end. # Use strict warnings for this front end.
java-warn = $(WERROR) java-warn = $(STRICT_WARN)
# String length warnings # String length warnings
jvspec.o-warn = -Wno-error jvspec.o-warn = -Wno-error
# Use of non-standardized scandir
java/jcf-io.o-warn = -Wno-error
jc1$(exeext): $(JAVA_OBJS) $(BACKEND) $(LIBDEPS) jc1$(exeext): $(JAVA_OBJS) $(BACKEND) $(LIBDEPS)
rm -f $@ rm -f $@
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \ $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \
......
...@@ -268,11 +268,8 @@ ident_subst (const char* old_name, ...@@ -268,11 +268,8 @@ ident_subst (const char* old_name,
int prefix_len = strlen (prefix); int prefix_len = strlen (prefix);
int suffix_len = strlen (suffix); int suffix_len = strlen (suffix);
int i = prefix_len + old_length + suffix_len + 1; int i = prefix_len + old_length + suffix_len + 1;
#ifdef __GNUC__
char buffer[i];
#else
char *buffer = alloca (i); char *buffer = alloca (i);
#endif
strcpy (buffer, prefix); strcpy (buffer, prefix);
for (i = 0; i < old_length; i++) for (i = 0; i < old_length; i++)
{ {
......
...@@ -2,4 +2,5 @@ enum java_opcode { ...@@ -2,4 +2,5 @@ enum java_opcode {
#define JAVAOP(NAME, CODE, KIND, TYPE, VALUE) OPCODE_##NAME = CODE, #define JAVAOP(NAME, CODE, KIND, TYPE, VALUE) OPCODE_##NAME = CODE,
#include "javaop.def" #include "javaop.def"
#undef JAVAOP #undef JAVAOP
LAST_AND_UNUSED_JAVA_OPCODE
}; };
...@@ -1181,7 +1181,7 @@ disassemble_method (JCF* jcf, const unsigned char *byte_ops, int len) ...@@ -1181,7 +1181,7 @@ disassemble_method (JCF* jcf, const unsigned char *byte_ops, int len)
#define VAR_INDEX_2 (saw_index = 1, IMMEDIATE_u2) #define VAR_INDEX_2 (saw_index = 1, IMMEDIATE_u2)
#define CHECK_PC_IN_RANGE(PC) (PC < 0 || PC > len ? \ #define CHECK_PC_IN_RANGE(PC) (PC < 0 || PC > len ? \
(fprintf(stderr, _("Bad byte codes.\n")), exit(-1)) : 1) (fprintf(stderr, _("Bad byte codes.\n")), exit(-1), 0) : 1)
/* Print out operand (if not implied by the opcode) for PUSCH opcodes. /* Print out operand (if not implied by the opcode) for PUSCH opcodes.
These all push a constant onto the opcode stack. */ These all push a constant onto the opcode stack. */
......
...@@ -376,7 +376,8 @@ caching_stat (char *filename, struct stat *buf) ...@@ -376,7 +376,8 @@ caching_stat (char *filename, struct stat *buf)
particular, the type of the function pointer passed as the particular, the type of the function pointer passed as the
third argument sometimes takes a "const struct dirent *" third argument sometimes takes a "const struct dirent *"
parameter, and sometimes just a "struct dirent *". We cast parameter, and sometimes just a "struct dirent *". We cast
to (void *) so that either way it is quietly accepted. */ to (void *) so that either way it is quietly accepted.
FIXME: scandir is not in POSIX. */
dent->num_files = scandir (filename, &dent->files, dent->num_files = scandir (filename, &dent->files,
(void *) java_or_class_file, (void *) java_or_class_file,
alphasort); alphasort);
......
...@@ -404,7 +404,8 @@ pop_argument_types (tree arg_types) ...@@ -404,7 +404,8 @@ pop_argument_types (tree arg_types)
{ oldpc = LABEL_PC (tmplab); goto verify_error; }} while (0) { oldpc = LABEL_PC (tmplab); goto verify_error; }} while (0)
#ifdef __GNUC__ #ifdef __GNUC__
#define CHECK_PC_IN_RANGE(PC) ({if (PC < 0 || PC > length) goto bad_pc; (void)1;}) #define CHECK_PC_IN_RANGE(PC) __extension__ \
({if (PC < 0 || PC > length) goto bad_pc; (void)1;})
#else #else
#define CHECK_PC_IN_RANGE(PC) (PC < 0 || PC > length ? (abort (), 0) : 1) #define CHECK_PC_IN_RANGE(PC) (PC < 0 || PC > length ? (abort (), 0) : 1)
#endif #endif
......
...@@ -24,13 +24,14 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */ ...@@ -24,13 +24,14 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */
/* Written by Mohan Embar <gnustuff@thisiscool.com>, March 2003. */ /* Written by Mohan Embar <gnustuff@thisiscool.com>, March 2003. */
#ifdef WIN32
#include "config.h" #include "config.h"
#include "system.h" #include "system.h"
#include "coretypes.h" #include "coretypes.h"
#include "jcf.h" #include "jcf.h"
#ifdef WIN32
#define WIN32_LEAN_AND_MEAN #define WIN32_LEAN_AND_MEAN
#include <windows.h> #include <windows.h>
#undef WIN32_LEAN_AND_MEAN #undef WIN32_LEAN_AND_MEAN
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment