mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-12 20:00:23 +08:00
Makefile.in: (JAVA_OBJS) Added entry xref.o.
1999-03-22 Alexandre Petit-Bianco <apbianco@cygnus.com> * Makefile.in: (JAVA_OBJS) Added entry xref.o. (xref.o): New rule. * java-tree.h (flag_emit_xref): Declared extern. * lang.c: (xref.h): Included. (flag_emit_xref): New global variable. (lang_decode_option): Added support for -fxref. * xref.c: Created. * xref.h: Likewise. From-SVN: r25907
This commit is contained in:
parent
a127db7565
commit
235acd3518
@ -1,3 +1,14 @@
|
||||
1999-03-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
|
||||
|
||||
* Makefile.in: (JAVA_OBJS) Added entry xref.o.
|
||||
(xref.o): New rule.
|
||||
* java-tree.h (flag_emit_xref): Declared extern.
|
||||
* lang.c: (xref.h): Included.
|
||||
(flag_emit_xref): New global variable.
|
||||
(lang_decode_option): Added support for -fxref.
|
||||
* xref.c: Created.
|
||||
* xref.h: Likewise.
|
||||
|
||||
1999-03-21 Manfred Hollstein <manfred@s-direktnet.de>
|
||||
|
||||
* Make-lang.in ($(GCJ)$(exeext)): Add intl.o to list of files to be
|
||||
|
@ -175,7 +175,7 @@ INCLUDES = -I. -I.. -I$(srcdir) -I$(srcdir)/.. -I$(srcdir)/../config -I$(srcdir)
|
||||
#
|
||||
JAVA_OBJS = parse.o class.o decl.o expr.o constants.o lang.o typeck.o \
|
||||
except.o verify.o zextract.o jcf-io.o jcf-parse.o mangle.o jcf-write.o \
|
||||
buffer.o check-init.o jcf-depend.o jcf-path.o
|
||||
buffer.o check-init.o jcf-depend.o jcf-path.o xref.o
|
||||
|
||||
JAVA_OBJS_LITE = parse-scan.o jv-scan.o
|
||||
|
||||
@ -315,5 +315,7 @@ typeck.o : typeck.c $(CONFIG_H) $(JAVA_TREE_H) jcf.h convert.h \
|
||||
$(srcdir)/../toplev.h $(srcdir)/../system.h
|
||||
verify.o : verify.c $(CONFIG_H) $(JAVA_TREE_H) jcf.h javaop.h java-opcodes.h \
|
||||
java-except.h $(srcdir)/../toplev.h $(srcdir)/../system.h
|
||||
xref.o : xref.h $(CONFIG_H) $(JAVA_TREE_H) $(srcdir)/../toplev.h \
|
||||
$(srcdir)/../system.h
|
||||
zextract.o : zextract.c $(CONFIG_H) $(srcdir)/../system.h zipfile.h
|
||||
|
||||
|
@ -127,6 +127,11 @@ extern int flag_assume_compiled;
|
||||
|
||||
extern int flag_emit_class_files;
|
||||
|
||||
/* When non zero, we emit xref strings. Values of the flag for xref
|
||||
backends are defined in xref.h. */
|
||||
|
||||
extern int flag_emit_xref;
|
||||
|
||||
/* Turned to 1 if -Wall was encountered. See lang.c for their meanings. */
|
||||
extern int flag_wall;
|
||||
extern int flag_redundant;
|
||||
|
@ -32,6 +32,7 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */
|
||||
#include "jcf.h"
|
||||
#include "toplev.h"
|
||||
#include "flags.h"
|
||||
#include "xref.h"
|
||||
|
||||
#ifndef OBJECT_SUFFIX
|
||||
# define OBJECT_SUFFIX ".o"
|
||||
@ -87,6 +88,11 @@ int flag_assume_compiled = 1;
|
||||
|
||||
int flag_emit_class_files = 0;
|
||||
|
||||
/* When non zero, we emit xref strings. Values of the flag for xref
|
||||
backends are defined in xref_flag_table, xref.c. */
|
||||
|
||||
int flag_emit_xref = 0;
|
||||
|
||||
/* When non zero, -Wall was turned on. */
|
||||
int flag_wall = 0;
|
||||
|
||||
@ -168,6 +174,16 @@ lang_decode_option (argc, argv)
|
||||
}
|
||||
#undef ARG
|
||||
|
||||
#define XARG "-fxref="
|
||||
if (strncmp (p, XARG, sizeof (XARG) - 1) == 0)
|
||||
{
|
||||
if (!(flag_emit_xref = xref_flag_value (p + sizeof (XARG) - 1)))
|
||||
{
|
||||
error ("Unkown xref back end `%s'", p + sizeof (XARG) - 1);
|
||||
}
|
||||
}
|
||||
#undef XARG
|
||||
|
||||
if (p[0] == '-' && p[1] == 'f')
|
||||
{
|
||||
/* Some kind of -f option.
|
||||
|
72
gcc/java/xref.c
Normal file
72
gcc/java/xref.c
Normal file
@ -0,0 +1,72 @@
|
||||
/* Write cross reference information extracted from Java(TM)
|
||||
source and bytecode files, in one of formats documented below.
|
||||
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
Contributed by Alexandre Petit-Bianco (apbianco@cygnus.com)
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
GNU CC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU CC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU CC; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
|
||||
Java and all Java-based marks are trademarks or registered trademarks
|
||||
of Sun Microsystems, Inc. in the United States and other countries.
|
||||
The Free Software Foundation is independent of Sun Microsystems, Inc. */
|
||||
|
||||
#include <stdio.h>
|
||||
#include "config.h"
|
||||
#include "tree.h"
|
||||
#include "java-tree.h"
|
||||
#include "xref.h"
|
||||
|
||||
|
||||
static xref_flag_table xref_table [] = {
|
||||
{NULL, NULL, NULL},
|
||||
};
|
||||
|
||||
/* Decode an xref flag value. Return 0 if the flag wasn't found. */
|
||||
|
||||
int xref_flag_value (flag)
|
||||
char *flag;
|
||||
{
|
||||
int i;
|
||||
for (i = 0; xref_table [i].key; i++)
|
||||
if (!strcmp (flag, xref_table [i].key))
|
||||
return i+1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Branch to the right xref "back-end". */
|
||||
|
||||
void
|
||||
expand_xref (node)
|
||||
tree node;
|
||||
{
|
||||
/* Maintain these two cached. */
|
||||
static FILE *fp = NULL;
|
||||
static void (*current_expand) PROTO ((FILE *, tree)) = NULL;
|
||||
|
||||
if ( !flag_emit_xref )
|
||||
return;
|
||||
|
||||
if (!fp)
|
||||
fp = xref_table [flag_emit_xref-1].fp;
|
||||
if (!current_expand)
|
||||
current_expand = xref_table [flag_emit_xref-1].expand;
|
||||
|
||||
(*current_expand) (fp, node);
|
||||
}
|
||||
|
||||
/* Implementation of the xref back-ends. */
|
||||
|
42
gcc/java/xref.h
Normal file
42
gcc/java/xref.h
Normal file
@ -0,0 +1,42 @@
|
||||
/* Definitions for the cross reference backend xref.c
|
||||
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
Contributed by Alexandre Petit-Bianco (apbianco@cygnus.com)
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
GNU CC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU CC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU CC; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
|
||||
Java and all Java-based marks are trademarks or registered trademarks
|
||||
of Sun Microsystems, Inc. in the United States and other countries.
|
||||
The Free Software Foundation is independent of Sun Microsystems, Inc. */
|
||||
|
||||
/* Exported functions. */
|
||||
int xref_flag_value PROTO ((char *));
|
||||
void xref_generate PROTO ((tree));
|
||||
|
||||
/* flag_emit_xref range of possible values. */
|
||||
|
||||
enum {
|
||||
XREF_NONE = 0,
|
||||
};
|
||||
|
||||
/* Lookup table to be used with the value of flag_emit_xref */
|
||||
|
||||
typedef struct {
|
||||
char *key; /* Activator in -fxref=<key> */
|
||||
void (*expand) PROTO ((FILE *, tree)); /* Function to write xrefs out */
|
||||
FILE *fp; /* fp to use during the call. */
|
||||
} xref_flag_table;
|
Loading…
Reference in New Issue
Block a user