Committed: Fix C99:ism (declaration after statement) in java FE.
Steven Bosscher
stevenb@suse.de
Sun Oct 17 13:22:00 GMT 2004
On Sunday 17 October 2004 12:59, Hans-Peter Nilsson wrote:
> On Sat, 16 Oct 2004, Kaveh R. Ghazi wrote:
> > > Hope to look into adding -Wdeclaration-after-statement for all
> > > front-ends @WERROR@ settings (stage2 or where supported).
> >
> > No need for a new flag, just add -pedantic like the other FEs do.
> > (Haven't tried it myself, probably requires cleaning other fallout.)
>
> Hmm, looks like you're right. Tom Tromey mentioned on IRC that
> he'd like more warnings enabled, so it seems this would be the
> way to go. Maybe I'll do it.
I've just done it. It's still bootstrapping on x86_64-suse-linux-gnu
but I'm not expecting any problems (it's well into libjava now).
OK if it completes bootstrapping and testing?
Gr.
Steven
* 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.
Index: Make-lang.in
===================================================================
RCS file: /cvs/gcc/gcc/gcc/java/Make-lang.in,v
retrieving revision 1.145
diff -c -3 -p -r1.145 Make-lang.in
*** Make-lang.in 22 Sep 2004 11:21:21 -0000 1.145
--- Make-lang.in 17 Oct 2004 11:41:56 -0000
*************** JCFDUMP_OBJS = java/jcf-dump.o java/jcf-
*** 118,128 ****
JVGENMAIN_OBJS = java/jvgenmain.o java/mangle_name.o errors.o intl.o
! # Use loose warnings for this front end.
! java-warn = $(WERROR)
# String length warnings
jvspec.o-warn = -Wno-error
jc1$(exeext): $(JAVA_OBJS) $(BACKEND) $(LIBDEPS)
rm -f $@
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \
--- 118,132 ----
JVGENMAIN_OBJS = java/jvgenmain.o java/mangle_name.o errors.o intl.o
! # Use strict warnings for this front end.
! java-warn = $(STRICT_WARN) $(WERROR)
!
# 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 $@ \
Index: class.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/java/class.c,v
retrieving revision 1.210
diff -c -3 -p -r1.210 class.c
*** class.c 15 Oct 2004 18:43:10 -0000 1.210
--- class.c 17 Oct 2004 11:41:57 -0000
*************** ident_subst (const char* old_name,
*** 268,278 ****
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++)
{
--- 268,275 ----
int prefix_len = strlen (prefix);
int suffix_len = strlen (suffix);
int i = prefix_len + old_length + suffix_len + 1;
char *buffer = alloca (i);
!
strcpy (buffer, prefix);
for (i = 0; i < old_length; i++)
{
Index: java-opcodes.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/java/java-opcodes.h,v
retrieving revision 1.2
diff -c -3 -p -r1.2 java-opcodes.h
*** java-opcodes.h 16 Dec 1998 21:20:04 -0000 1.2
--- java-opcodes.h 17 Oct 2004 11:41:57 -0000
*************** enum java_opcode {
*** 2,5 ****
--- 2,6 ----
#define JAVAOP(NAME, CODE, KIND, TYPE, VALUE) OPCODE_##NAME = CODE,
#include "javaop.def"
#undef JAVAOP
+ LAST_AND_UNUSED_JAVA_OPCODE
};
Index: jcf-dump.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/java/jcf-dump.c,v
retrieving revision 1.62
diff -c -3 -p -r1.62 jcf-dump.c
*** jcf-dump.c 25 Sep 2004 13:49:22 -0000 1.62
--- jcf-dump.c 17 Oct 2004 11:41:57 -0000
*************** disassemble_method (JCF* jcf, const unsi
*** 1181,1187 ****
#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)
/* Print out operand (if not implied by the opcode) for PUSCH opcodes.
These all push a constant onto the opcode stack. */
--- 1181,1187 ----
#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), 0) : 1)
/* Print out operand (if not implied by the opcode) for PUSCH opcodes.
These all push a constant onto the opcode stack. */
Index: jcf-io.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/java/jcf-io.c,v
retrieving revision 1.52
diff -c -3 -p -r1.52 jcf-io.c
*** jcf-io.c 15 Oct 2004 18:43:10 -0000 1.52
--- jcf-io.c 17 Oct 2004 11:41:57 -0000
*************** caching_stat (char *filename, struct sta
*** 376,382 ****
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. */
dent->num_files = scandir (filename, &dent->files,
(void *) java_or_class_file,
alphasort);
--- 376,383 ----
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.
! FIXME: scandir is not in POSIX. */
dent->num_files = scandir (filename, &dent->files,
(void *) java_or_class_file,
alphasort);
Index: verify.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/java/verify.c,v
retrieving revision 1.65
diff -c -3 -p -r1.65 verify.c
*** verify.c 24 Jul 2004 00:03:28 -0000 1.65
--- verify.c 17 Oct 2004 11:41:57 -0000
*************** pop_argument_types (tree arg_types)
*** 404,410 ****
{ 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;})
#else
#define CHECK_PC_IN_RANGE(PC) (PC < 0 || PC > length ? (abort (), 0) : 1)
#endif
--- 404,411 ----
{ oldpc = LABEL_PC (tmplab); goto verify_error; }} while (0)
#ifdef __GNUC__
! #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
Index: win32-host.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/java/win32-host.c,v
retrieving revision 1.6
diff -c -3 -p -r1.6 win32-host.c
*** win32-host.c 15 Oct 2004 14:55:00 -0000 1.6
--- win32-host.c 17 Oct 2004 11:41:57 -0000
*************** The Free Software Foundation is independ
*** 24,36 ****
/* Written by Mohan Embar <gnustuff@thisiscool.com>, March 2003. */
- #ifdef WIN32
#include "config.h"
#include "system.h"
#include "coretypes.h"
#include "jcf.h"
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#undef WIN32_LEAN_AND_MEAN
--- 24,37 ----
/* Written by Mohan Embar <gnustuff@thisiscool.com>, March 2003. */
#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
More information about the Gcc-patches
mailing list