summaryrefslogtreecommitdiff
path: root/gcc/java
diff options
context:
space:
mode:
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2008-02-29 12:55:06 +0000
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2008-02-29 12:55:06 +0000
commite0859e4a536bd443d95503803cbfb725165f71d5 (patch)
tree25913b4e0b76c5a0ab05d84339e5149bd388d1b0 /gcc/java
parent607ac9100968a4144e5925574299ffd91d01a024 (diff)
downloadgcc-e0859e4a536bd443d95503803cbfb725165f71d5.tar.gz
* expr.c (expand_byte_code): Set DECL_FUNCTION_LAST_LINE on
method. * java-tree.h (struct lang_decl_func): Remove obsolete comment. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@132767 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/java')
-rw-r--r--gcc/java/ChangeLog6
-rw-r--r--gcc/java/expr.c5
-rw-r--r--gcc/java/java-tree.h4
3 files changed, 12 insertions, 3 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index 90f9a0cad9e..eed2fd2c676 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,9 @@
+2008-02-29 Tom Tromey <tromey@redhat.com>
+
+ * expr.c (expand_byte_code): Set DECL_FUNCTION_LAST_LINE on
+ method.
+ * java-tree.h (struct lang_decl_func): Remove obsolete comment.
+
2008-02-26 Tom Tromey <tromey@redhat.com>
* lang.c (java_post_options): Remove conditional.
diff --git a/gcc/java/expr.c b/gcc/java/expr.c
index c174ed9a41e..b113df1de9e 100644
--- a/gcc/java/expr.c
+++ b/gcc/java/expr.c
@@ -3132,6 +3132,7 @@ expand_byte_code (JCF *jcf, tree method)
int dead_code_index = -1;
unsigned char* byte_ops;
long length = DECL_CODE_LENGTH (method);
+ location_t max_location = input_location;
stack_pointer = 0;
JCF_SEEK (jcf, DECL_CODE_OFFSET (method));
@@ -3219,6 +3220,8 @@ expand_byte_code (JCF *jcf, tree method)
{
int line = GET_u2 (linenumber_pointer - 2);
input_location = linemap_line_start (line_table, line, 1);
+ if (input_location > max_location)
+ max_location = input_location;
if (!(instruction_bits[PC] & BCODE_HAS_MULTI_LINENUMBERS))
break;
}
@@ -3238,6 +3241,8 @@ expand_byte_code (JCF *jcf, tree method)
warning (0, "unreachable bytecode from %d to the end of the method",
dead_code_index);
}
+
+ DECL_FUNCTION_LAST_LINE (method) = max_location;
}
static void
diff --git a/gcc/java/java-tree.h b/gcc/java/java-tree.h
index a19d400d608..494c428db19 100644
--- a/gcc/java/java-tree.h
+++ b/gcc/java/java-tree.h
@@ -1,7 +1,7 @@
/* Definitions for parsing and type checking for the GNU compiler for
the Java(TM) language.
Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
- 2005, 2006, 2007 Free Software Foundation, Inc.
+ 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
This file is part of GCC.
@@ -793,8 +793,6 @@ struct lang_decl_func GTY(())
int max_locals;
int max_stack;
int arg_slot_count;
- /* A temporary lie for the sake of ggc. Actually, last_line is
- only a source_location if USE_MAPPED_LOCATION. FIXME. */
source_location last_line; /* End line number for a function decl */
tree throws_list; /* Exception specified by `throws' */