+2003-09-28 Richard Henderson <rth@redhat.com>
+
+ * c-decl.c (duplicate_decls): Copy DECL_SOURCE_LOCATION, not
+ file and line separately.
+
2003-09-28 Ulrich Weigand <uweigand@de.ibm.com>
* config/s390/s390.md ("*adddi3_carry1_cc", "*adddi3_carry1_cconly",
information so that meaningful diagnostics can be given. */
if (DECL_INITIAL (newdecl) == 0 && DECL_INITIAL (olddecl) != 0
&& ! different_binding_level)
- {
- DECL_SOURCE_LINE (newdecl) = DECL_SOURCE_LINE (olddecl);
- DECL_SOURCE_FILE (newdecl) = DECL_SOURCE_FILE (olddecl);
- }
+ DECL_SOURCE_LOCATION (newdecl) = DECL_SOURCE_LOCATION (olddecl);
/* Merge the unused-warning information. */
if (DECL_IN_SYSTEM_HEADER (olddecl))
+2003-09-28 Richard Henderson <rth@redhat.com>
+
+ * com.c (duplicate_decls): Copy DECL_SOURCE_LOCATION, not
+ file and line separately.
+
2003-09-21 Richard Henderson <rth@redhat.com>
* com.c, ste.c: Revert.
if ((DECL_INITIAL (newdecl) == 0 && DECL_INITIAL (olddecl) != 0)
|| (DECL_CONTEXT (newdecl) != 0 && DECL_CONTEXT (olddecl) == 0))
{
- DECL_SOURCE_LINE (newdecl) = DECL_SOURCE_LINE (olddecl);
- DECL_SOURCE_FILE (newdecl) = DECL_SOURCE_FILE (olddecl);
+ DECL_SOURCE_LOCATION (newdecl) = DECL_SOURCE_LOCATION (olddecl);
if (DECL_CONTEXT (olddecl) == 0
&& TREE_CODE (newdecl) != FUNCTION_DECL)
+2003-09-28 Richard Henderson <rth@redhat.com>
+
+ * check-init.c (check_init): Save and restore input_location
+ instead of file and line separately.
+ * decl.c (java_expand_body): Likewise.
+ * jcf-write.c (generate_bytecode_insns): Likewise.
+ * parse.y (safe_layout_class): Likewise.
+ * jcf-parse.c (read_class, parse_class_file): Likewise.
+ (java_parse_file): Use %H for warning locator.
+
2003-09-28 Roger Sayle <roger@eyesopen.com>
* expr.c (java_check_reference): Use the semantics of COND_EXPRs
case EXPR_WITH_FILE_LOCATION:
{
- const char *saved_input_filename = input_filename;
+ location_t saved_location = input_location;
tree saved_wfl = wfl;
tree body = EXPR_WFL_NODE (exp);
- int saved_lineno = input_line;
if (body == empty_stmt_node)
break;
wfl = exp;
input_filename = EXPR_WFL_FILENAME (exp);
input_line = EXPR_WFL_LINENO (exp);
check_init (body, before);
- input_filename = saved_input_filename;
- input_line = saved_lineno;
+ input_location = saved_location;
wfl = saved_wfl;
}
break;
void
java_expand_body (tree fndecl)
{
- const char *saved_input_filename = input_filename;
- int saved_lineno = input_line;
+ location_t saved_location = input_location;
current_function_decl = fndecl;
- input_filename = DECL_SOURCE_FILE (fndecl);
- input_line = DECL_SOURCE_LINE (fndecl);
+ input_location = DECL_SOURCE_LOCATION (fndecl);
timevar_push (TV_EXPAND);
timevar_pop (TV_EXPAND);
- input_filename = saved_input_filename;
- input_line = saved_lineno;
+ input_location = saved_location;
current_function_decl = NULL_TREE;
}
JCF this_jcf, *jcf;
tree icv, class = NULL_TREE;
tree save_current_class = current_class;
- const char *save_input_filename = input_filename;
+ location_t save_location = input_location;
JCF *save_current_jcf = current_jcf;
if ((icv = IDENTIFIER_CLASS_VALUE (name)) != NULL_TREE)
}
current_class = save_current_class;
- input_filename = save_input_filename;
+ input_location = save_location;
current_jcf = save_current_jcf;
return 1;
}
parse_class_file (void)
{
tree method;
- const char *save_input_filename = input_filename;
- int save_lineno = input_line;
+ location_t save_location = input_location;
java_layout_seen_class_methods ();
finish_class ();
- (*debug_hooks->end_source_file) (save_lineno);
- input_filename = save_input_filename;
- input_line = save_lineno;
+ (*debug_hooks->end_source_file) (save_location.line);
+ input_location = save_location;
}
/* Parse a source file, as pointed by the current value of INPUT_FILENAME. */
if (twice)
{
- const char *saved_input_filename = input_filename;
- input_filename = value;
- warning ("source file seen twice on command line and will be compiled only once");
- input_filename = saved_input_filename;
+ location_t warn_loc;
+ warn_loc.file = value;
+ warn_loc.line = 0;
+ warning ("%Hsource file seen twice on command line and "
+ "will be compiled only once", &warn_loc);
}
else
{
break;
case EXPR_WITH_FILE_LOCATION:
{
- const char *saved_input_filename = input_filename;
+ location_t saved_location = input_location;
tree body = EXPR_WFL_NODE (exp);
- int saved_lineno = input_line;
if (body == empty_stmt_node)
break;
input_filename = EXPR_WFL_FILENAME (exp);
&& debug_info_level > DINFO_LEVEL_NONE)
put_linenumber (input_line, state);
generate_bytecode_insns (body, target, state);
- input_filename = saved_input_filename;
- input_line = saved_lineno;
+ input_location = saved_location;
}
break;
case INTEGER_CST:
safe_layout_class (tree class)
{
tree save_current_class = current_class;
- const char *save_input_filename = input_filename;
- int save_lineno = input_line;
+ location_t save_location = input_location;
layout_class (class);
current_class = save_current_class;
- input_filename = save_input_filename;
- input_line = save_lineno;
+ input_location = save_location;
}
static tree