aboutsummaryrefslogtreecommitdiff
path: root/gcc/java
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@codesourcery.com>2003-06-09 12:57:15 +0000
committerNathan Sidwell <nathan@gcc.gnu.org>2003-06-09 12:57:15 +0000
commit36f04556d6bf6b8c272065bab473e354e8540ca9 (patch)
tree2c36f0d548c266e7b466be2d29acaab8cb00f8e1 /gcc/java
parent86143cb4c392278ae78e47eb4fe884ba82364d6f (diff)
downloadgcc-36f04556d6bf6b8c272065bab473e354e8540ca9.zip
gcc-36f04556d6bf6b8c272065bab473e354e8540ca9.tar.gz
gcc-36f04556d6bf6b8c272065bab473e354e8540ca9.tar.bz2
tree-inline.c (expand_call_inline): DECL_SOURCE_LINE_FIRST is removed.
* tree-inline.c (expand_call_inline): DECL_SOURCE_LINE_FIRST is removed. * java/java-tree.h (DECL_FUNCTION_LAST_LINE): New. (struct lang_decl_func): Add last_line field. * java/parse.h (DECL_SOURCE_LINE_MERGE, DECL_SOURCE_LINE_FIRST, DECL_SOURCE_LINE_LAST): Remove. * java/parse.y (missing_return_error, finish_method_declaration, lookup_cl, start_artificial_method_body, source_end_java_method, start_complete_expand_method): Adjust. From-SVN: r67661
Diffstat (limited to 'gcc/java')
-rw-r--r--gcc/java/ChangeLog10
-rw-r--r--gcc/java/java-tree.h3
-rw-r--r--gcc/java/parse.h8
-rw-r--r--gcc/java/parse.y14
4 files changed, 19 insertions, 16 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index 3051762..9d2a448 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,13 @@
+2003-06-09 Nathan Sidwell <nathan@codesourcery.com>
+
+ * java-tree.h (DECL_FUNCTION_LAST_LINE): New.
+ (struct lang_decl_func): Add last_line field.
+ * parse.h (DECL_SOURCE_LINE_MERGE, DECL_SOURCE_LINE_FIRST,
+ DECL_SOURCE_LINE_LAST): Remove.
+ * parse.y (missing_return_error, finish_method_declaration,
+ lookup_cl, start_artificial_method_body, source_end_java_method,
+ start_complete_expand_method): Adjust.
+
2003-06-08 Tom Tromey <tromey@redhat.com>
* jvspec.c (jvgenmain_spec): Added `*' after fassume-compiled and
diff --git a/gcc/java/java-tree.h b/gcc/java/java-tree.h
index 78bc924..341928d 100644
--- a/gcc/java/java-tree.h
+++ b/gcc/java/java-tree.h
@@ -773,6 +773,8 @@ union lang_tree_node
/* Number of local variable slots needed for the arguments of this function. */
#define DECL_ARG_SLOT_COUNT(DECL) \
(DECL_LANG_SPECIFIC(DECL)->u.f.arg_slot_count)
+/* Line number of end of function. */
+#define DECL_FUNCTION_LAST_LINE(DECL) (DECL_LANG_SPECIFIC(DECL)->u.f.last_line)
/* Information on declaration location */
#define DECL_FUNCTION_WFL(DECL) (DECL_LANG_SPECIFIC(DECL)->u.f.wfl)
/* List of checked thrown exceptions, as specified with the `throws'
@@ -974,6 +976,7 @@ struct lang_decl_func GTY(())
int max_locals;
int max_stack;
int arg_slot_count;
+ int last_line; /* End line number for a function decl */
tree wfl; /* Information on the original location */
tree throws_list; /* Exception specified by `throws' */
tree function_decl_body; /* Hold all function's statements */
diff --git a/gcc/java/parse.h b/gcc/java/parse.h
index 207bb8d..df1fa56 100644
--- a/gcc/java/parse.h
+++ b/gcc/java/parse.h
@@ -610,14 +610,6 @@ typedef struct jdeplist_s jdeplist;
#define GET_CURRENT_BLOCK(F) ((F) ? DECL_FUNCTION_BODY ((F)) : \
current_static_block)
-/* Merge an other line to the source line number of a decl. Used to
- remember function's end. */
-#define DECL_SOURCE_LINE_MERGE(DECL,NO) DECL_SOURCE_LINE(DECL) |= (NO << 16)
-
-/* Retrieve those two info separately. */
-#define DECL_SOURCE_LINE_FIRST(DECL) (DECL_SOURCE_LINE(DECL) & 0x0000ffff)
-#define DECL_SOURCE_LINE_LAST(DECL) (DECL_SOURCE_LINE(DECL) >> 16)
-
/* Retrieve line/column from a WFL. */
#define EXPR_WFL_GET_LINECOL(V,LINE,COL) \
{ \
diff --git a/gcc/java/parse.y b/gcc/java/parse.y
index 88c8c31..854fd5f 100644
--- a/gcc/java/parse.y
+++ b/gcc/java/parse.y
@@ -3139,7 +3139,7 @@ find_expr_with_wfl (tree node)
static void
missing_return_error (tree method)
{
- EXPR_WFL_SET_LINECOL (wfl_operator, DECL_SOURCE_LINE_LAST (method), -2);
+ EXPR_WFL_SET_LINECOL (wfl_operator, DECL_FUNCTION_LAST_LINE (method), -2);
parse_error_context (wfl_operator, "Missing return statement");
}
@@ -4758,7 +4758,7 @@ finish_method_declaration (tree method_body)
/* Merge last line of the function with first line, directly in the
function decl. It will be used to emit correct debug info. */
if (!flag_emit_xref)
- DECL_SOURCE_LINE_MERGE (current_function_decl, ctxp->last_ccb_indent1);
+ DECL_FUNCTION_LAST_LINE (current_function_decl) = ctxp->last_ccb_indent1;
/* Since function's argument's list are shared, reset the
ARG_FINAL_P parameter that might have been set on some of this
@@ -6604,7 +6604,7 @@ lookup_cl (tree decl)
}
EXPR_WFL_FILENAME_NODE (cl_v) = get_identifier (DECL_SOURCE_FILE (decl));
- EXPR_WFL_SET_LINECOL (cl_v, DECL_SOURCE_LINE_FIRST (decl), -1);
+ EXPR_WFL_SET_LINECOL (cl_v, DECL_SOURCE_LINE (decl), -1);
line = java_get_line_col (EXPR_WFL_FILENAME (cl_v),
EXPR_WFL_LINENO (cl_v), EXPR_WFL_COLNO (cl_v));
@@ -7313,7 +7313,7 @@ static void
start_artificial_method_body (tree mdecl)
{
DECL_SOURCE_LINE (mdecl) = 1;
- DECL_SOURCE_LINE_MERGE (mdecl, 1);
+ DECL_FUNCTION_LAST_LINE (mdecl) = 1;
source_start_java_method (mdecl);
enter_block ();
}
@@ -7385,11 +7385,9 @@ source_end_java_method (void)
/* Generate rtl for function exit. */
if (! flag_emit_class_files && ! flag_emit_xref)
{
- input_line = DECL_SOURCE_LINE_LAST (fndecl);
+ input_line = DECL_FUNCTION_LAST_LINE (fndecl);
expand_function_end (input_filename, input_line, 0);
- DECL_SOURCE_LINE (fndecl) = DECL_SOURCE_LINE_FIRST (fndecl);
-
/* Run the optimizers and output assembler code for this function. */
rest_of_compilation (fndecl);
}
@@ -7894,7 +7892,7 @@ start_complete_expand_method (tree mdecl)
TREE_CHAIN (tem) = next;
}
pushdecl_force_head (DECL_ARGUMENTS (mdecl));
- input_line = DECL_SOURCE_LINE_FIRST (mdecl);
+ input_line = DECL_SOURCE_LINE (mdecl);
build_result_decl (mdecl);
}