diff options
author | Alexandre Petit-Bianco <apbianco@cygnus.com> | 1999-03-22 19:57:37 +0000 |
---|---|---|
committer | Alexandre Petit-Bianco <apbianco@gcc.gnu.org> | 1999-03-22 11:57:37 -0800 |
commit | 235acd35186b64c7552439eec898b02a4dcec9ed (patch) | |
tree | 89ab59a2a0422857efa034b3749897399c9c59c4 /gcc/java/xref.c | |
parent | a127db7565df9c75cdb7a302c63d2139b73d61d6 (diff) | |
download | gcc-235acd35186b64c7552439eec898b02a4dcec9ed.tar.gz |
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
Diffstat (limited to 'gcc/java/xref.c')
-rw-r--r-- | gcc/java/xref.c | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/gcc/java/xref.c b/gcc/java/xref.c new file mode 100644 index 00000000000..12768066d7a --- /dev/null +++ b/gcc/java/xref.c @@ -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. */ + |