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
This commit is contained in:
Steven Bosscher 2004-10-17 22:51:35 +00:00 committed by Steven Bosscher
parent 7c672dfc01
commit 7cefa0c165
8 changed files with 31 additions and 10 deletions

View File

@ -1,3 +1,19 @@
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>
* expr.c (expr_add_location): Move declaration to before all

View File

@ -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
# Use loose warnings for this front end.
java-warn = $(WERROR)
# Use strict warnings for this front end.
java-warn = $(STRICT_WARN)
# String length warnings
jvspec.o-warn = -Wno-error
# Use of non-standardized scandir
java/jcf-io.o-warn = -Wno-error
jc1$(exeext): $(JAVA_OBJS) $(BACKEND) $(LIBDEPS)
rm -f $@
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \

View File

@ -268,11 +268,8 @@ ident_subst (const char* old_name,
int prefix_len = strlen (prefix);
int suffix_len = strlen (suffix);
int i = prefix_len + old_length + suffix_len + 1;
#ifdef __GNUC__
char buffer[i];
#else
char *buffer = alloca (i);
#endif
strcpy (buffer, prefix);
for (i = 0; i < old_length; i++)
{

View File

@ -2,4 +2,5 @@ enum java_opcode {
#define JAVAOP(NAME, CODE, KIND, TYPE, VALUE) OPCODE_##NAME = CODE,
#include "javaop.def"
#undef JAVAOP
LAST_AND_UNUSED_JAVA_OPCODE
};

View File

@ -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 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.
These all push a constant onto the opcode stack. */

View File

@ -376,7 +376,8 @@ caching_stat (char *filename, struct stat *buf)
particular, the type of the function pointer passed as the
third argument sometimes takes a "const struct dirent *"
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,
(void *) java_or_class_file,
alphasort);

View File

@ -404,7 +404,8 @@ pop_argument_types (tree arg_types)
{ oldpc = LABEL_PC (tmplab); goto verify_error; }} while (0)
#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
#define CHECK_PC_IN_RANGE(PC) (PC < 0 || PC > length ? (abort (), 0) : 1)
#endif

View File

@ -24,13 +24,14 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */
/* Written by Mohan Embar <gnustuff@thisiscool.com>, March 2003. */
#ifdef WIN32
#include "config.h"
#include "system.h"
#include "coretypes.h"
#include "jcf.h"
#ifdef WIN32
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#undef WIN32_LEAN_AND_MEAN