tree.h (TREE_LOCUS): Rename from DECL_SOURCE_LOCATION; make const.

* tree.h (TREE_LOCUS): Rename from DECL_SOURCE_LOCATION; make const.
	(TREE_FILENAME, TREE_LINENO): Likewise.
	(set_tree_locus, copy_tree_locus, set_tree_file_line): New.
	(TREE_LOCUS_SET_P): New.
	* c-aux-info.c, c-decl.c, c-parse.in, coverage.c, dbxout.c,
	diagnostic.c, dwarf2out.c, dwarfout.c, function.c, integrate.c,
	print-tree.c, stmt.c, toplev.c, tree-dump.c, tree-inline.c,
	tree-optimize.c, tree.c, tree.def, xcoffout.c, config/alpha/alpha.c,
	config/mips/mips.c, doc/c-tree.texi, objc/objc-act.c: Update to match.

ada/
	* trans.c, utils.c: Update for DECL_SOURCE_LOCATION rename and
	change to const.

cp/
	* class.c, cp-tree.h, decl.c, decl2.c, error.c, init.c,
	method.c, optimize.c, pt.c, semantics.c, tree.c: Update for
	DECL_SOURCE_LOCATION rename and change to const.

f/
	* com.c, ste.c: Update for DECL_SOURCE_LOCATION rename and
	change to const.

java/
	* class.c, decl.c, jcf-parse.c, jcf-write.c, parse.y,
	resource.c: Update for DECL_SOURCE_LOCATION rename and change to const.

treelang/
	* treetree.c: Update for DECL_SOURCE_LOCATION rename and
	change to const.

From-SVN: r71636
This commit is contained in:
Richard Henderson 2003-09-21 16:39:40 -07:00 committed by Richard Henderson
parent d6a1d39a7d
commit 7e2af53a14
52 changed files with 210 additions and 171 deletions

View File

@ -1,3 +1,15 @@
2003-09-21 Richard Henderson <rth@redhat.com>
* tree.h (TREE_LOCUS): Rename from DECL_SOURCE_LOCATION; make const.
(TREE_FILENAME, TREE_LINENO): Likewise.
(set_tree_locus, copy_tree_locus, set_tree_file_line): New.
(TREE_LOCUS_SET_P): New.
* c-aux-info.c, c-decl.c, c-parse.in, coverage.c, dbxout.c,
diagnostic.c, dwarf2out.c, dwarfout.c, function.c, integrate.c,
print-tree.c, stmt.c, toplev.c, tree-dump.c, tree-inline.c,
tree-optimize.c, tree.c, tree.def, xcoffout.c, config/alpha/alpha.c,
config/mips/mips.c, doc/c-tree.texi, objc/objc-act.c: Update to match.
2003-09-21 Nathanael Nerode <neroden@gcc.gnu.org>
* config/vax/vax-protos.h: Convert to ISO C90.

View File

@ -1,3 +1,8 @@
2003-09-21 Richard Henderson <rth@redhat.com>
* trans.c, utils.c: Update for DECL_SOURCE_LOCATION rename and
change to const.
2003-09-04 Michael Matz <matz@suse.de>
* misc.c: Include "target.h".

View File

@ -2611,7 +2611,7 @@ tree_transform (gnat_node)
the body so that the line number notes are written
correctly. */
set_lineno (gnat_node, 0);
DECL_SOURCE_LOCATION (gnu_subprog_decl) = input_location;
set_tree_locus (gnu_subprog_decl, input_location);
begin_subprog_body (gnu_subprog_decl);
set_lineno (gnat_node, 1);
@ -5333,7 +5333,7 @@ build_unit_elab (gnat_unit, body_p, gnu_elab_list)
{
tree lhs = TREE_PURPOSE (gnu_elab_list);
input_location = DECL_SOURCE_LOCATION (lhs);
input_location = TREE_LOCUS (lhs);
/* If LHS has a padded type, convert it to the unpadded type
so the assignment is done properly. */

View File

@ -1655,9 +1655,9 @@ create_label_decl (label_name)
{
tree label_decl = build_decl (LABEL_DECL, label_name, void_type_node);
DECL_CONTEXT (label_decl) = current_function_decl;
DECL_MODE (label_decl) = VOIDmode;
DECL_SOURCE_LOCATION (label_decl) = input_location;
DECL_CONTEXT (label_decl) = current_function_decl;
DECL_MODE (label_decl) = VOIDmode;
set_tree_locus (label_decl, input_location);
return label_decl;
}

View File

@ -569,8 +569,8 @@ gen_aux_info_record (tree fndecl, int is_definition, int is_implicit,
/* Write the actual line of auxiliary info. */
fprintf (aux_info_file, "/* %s:%d:%c%c */ %s;",
DECL_SOURCE_FILE (fndecl),
DECL_SOURCE_LINE (fndecl),
TREE_FILENAME (fndecl),
TREE_LINENO (fndecl),
(is_implicit) ? 'I' : (is_prototyped) ? 'N' : 'O',
(is_definition) ? 'F' : 'C',
gen_decl (fndecl, is_definition, ansi));

View File

@ -905,8 +905,7 @@ duplicate_decls (tree newdecl, tree olddecl, int different_binding_level,
return 0;
}
}
else if (TREE_CODE (olddecl) == FUNCTION_DECL
&& DECL_SOURCE_LINE (olddecl) == 0)
else if (TREE_CODE (olddecl) == FUNCTION_DECL && !TREE_LOCUS_SET_P (olddecl))
{
/* A function declaration for a predeclared function
that isn't actually built in. */
@ -1175,7 +1174,7 @@ duplicate_decls (tree newdecl, tree olddecl, int different_binding_level,
}
/* Optionally warn about more than one declaration for the same name. */
if (errmsg == 0 && warn_redundant_decls && DECL_SOURCE_LINE (olddecl) != 0
if (errmsg == 0 && warn_redundant_decls && TREE_LOCUS_SET_P (olddecl)
/* Don't warn about a function declaration
followed by a definition. */
&& !(TREE_CODE (newdecl) == FUNCTION_DECL && DECL_INITIAL (newdecl) != 0
@ -1272,10 +1271,7 @@ duplicate_decls (tree newdecl, tree olddecl, int different_binding_level,
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);
}
copy_tree_locus (newdecl, olddecl);
/* Merge the unused-warning information. */
if (DECL_IN_SYSTEM_HEADER (olddecl))
@ -1525,7 +1521,7 @@ warn_if_shadowing (tree x, tree old)
/* Shadow warnings not wanted? */
|| !warn_shadow
/* No shadow warnings for internally generated vars. */
|| DECL_SOURCE_LINE (x) == 0
|| !TREE_LOCUS_SET_P (x)
/* No shadow warnings for vars made for inlining. */
|| DECL_FROM_INLINE (x)
/* Don't warn about the parm names in function declarator
@ -1593,7 +1589,7 @@ warn_if_shadowing (tree x, tree old)
static void
clone_underlying_type (tree x)
{
if (DECL_SOURCE_LINE (x) == 0)
if (!TREE_LOCUS_SET_P (x))
{
if (TYPE_NAME (TREE_TYPE (x)) == 0)
TYPE_NAME (TREE_TYPE (x)) = x;
@ -1948,7 +1944,7 @@ make_label (tree name, location_t location)
DECL_CONTEXT (label) = current_function_decl;
DECL_MODE (label) = VOIDmode;
DECL_SOURCE_LOCATION (label) = location;
set_tree_locus (label, location);
return label;
}
@ -1995,7 +1991,7 @@ lookup_label (tree name)
location to point here, for better diagnostics if it
turns out not to have been defined. */
if (!TREE_USED (label))
DECL_SOURCE_LOCATION (label) = input_location;
set_tree_locus (label, input_location);
return label;
}
@ -2074,7 +2070,7 @@ define_label (location_t location, tree name)
/* The label has been used or declared already in this function,
but not defined. Update its location to point to this
definition. */
DECL_SOURCE_LOCATION (label) = location;
set_tree_locus (label, location);
}
else
{
@ -5462,7 +5458,7 @@ start_function (tree declspecs, tree declarator, tree attributes)
&& TYPE_ARG_TYPES (TREE_TYPE (decl1)) == 0)
{
TREE_TYPE (decl1) = TREE_TYPE (old_decl);
current_function_prototype_locus = DECL_SOURCE_LOCATION (old_decl);
current_function_prototype_locus = TREE_LOCUS (old_decl);
}
/* Optionally warn of old-fashioned def with no previous prototype. */
@ -5755,7 +5751,7 @@ store_parm_decls_oldstyle (void)
{
decl = build_decl (PARM_DECL, TREE_VALUE (parm), integer_type_node);
DECL_ARG_TYPE (decl) = TREE_TYPE (decl);
DECL_SOURCE_LOCATION (decl) = DECL_SOURCE_LOCATION (fndecl);
copy_tree_locus (decl, fndecl);
pushdecl (decl);
if (flag_isoc99)

View File

@ -414,7 +414,7 @@ fndef:
YYERROR1;
}
old_style_parm_decls save_location
{ DECL_SOURCE_LOCATION (current_function_decl) = $6;
{ set_tree_locus (current_function_decl, $6);
store_parm_decls (); }
compstmt_or_error
{ finish_function ();
@ -427,7 +427,7 @@ fndef:
YYERROR1;
}
old_style_parm_decls save_location
{ DECL_SOURCE_LOCATION (current_function_decl) = $6;
{ set_tree_locus (current_function_decl, $6);
store_parm_decls (); }
compstmt_or_error
{ finish_function ();
@ -440,7 +440,7 @@ fndef:
YYERROR1;
}
old_style_parm_decls save_location
{ DECL_SOURCE_LOCATION (current_function_decl) = $5;
{ set_tree_locus (current_function_decl, $5);
store_parm_decls (); }
compstmt_or_error
{ finish_function ();
@ -1563,7 +1563,7 @@ nested_function:
}
old_style_parm_decls save_location
{ tree decl = current_function_decl;
DECL_SOURCE_LOCATION (decl) = $4;
set_tree_locus (decl, $4);
store_parm_decls (); }
/* This used to use compstmt_or_error.
That caused a bug with input `f(g) int g {}',
@ -1594,7 +1594,7 @@ notype_nested_function:
}
old_style_parm_decls save_location
{ tree decl = current_function_decl;
DECL_SOURCE_LOCATION (decl) = $4;
set_tree_locus (decl, $4);
store_parm_decls (); }
/* This used to use compstmt_or_error.
That caused a bug with input `f(g) int g {}',

View File

@ -7349,13 +7349,11 @@ alpha_start_function (FILE *file, const char *fnname,
if (write_symbols == SDB_DEBUG)
{
#ifdef ASM_OUTPUT_SOURCE_FILENAME
ASM_OUTPUT_SOURCE_FILENAME (file,
DECL_SOURCE_FILE (current_function_decl));
ASM_OUTPUT_SOURCE_FILENAME (file, TREE_FILENAME (current_function_decl));
#endif
#ifdef ASM_OUTPUT_SOURCE_LINE
if (debug_info_level != DINFO_LEVEL_TERSE)
ASM_OUTPUT_SOURCE_LINE (file,
DECL_SOURCE_LINE (current_function_decl), 0);
ASM_OUTPUT_SOURCE_LINE (file, TREE_LINENO (current_function_decl), 0);
#endif
}

View File

@ -6507,11 +6507,11 @@ mips_output_function_prologue (FILE *file, HOST_WIDE_INT size ATTRIBUTE_UNUSED)
need the source filename more than once in the file, beyond what is
emitted by the debug information. */
if (!TARGET_GAS)
ASM_OUTPUT_SOURCE_FILENAME (file, DECL_SOURCE_FILE (current_function_decl));
ASM_OUTPUT_SOURCE_FILENAME (file, TREE_FILENAME (current_function_decl));
#ifdef SDB_DEBUGGING_INFO
if (debug_info_level != DINFO_LEVEL_TERSE && write_symbols == SDB_DEBUG)
ASM_OUTPUT_SOURCE_LINE (file, DECL_SOURCE_LINE (current_function_decl), 0);
ASM_OUTPUT_SOURCE_LINE (file, TREE_LINENO (current_function_decl), 0);
#endif
/* In mips16 mode, we may need to generate a 32 bit to handle

View File

@ -410,9 +410,9 @@ checksum_string (unsigned chksum, const char *string)
static unsigned
compute_checksum (void)
{
unsigned chksum = DECL_SOURCE_LINE (current_function_decl);
unsigned chksum = TREE_LINENO (current_function_decl);
chksum = checksum_string (chksum, DECL_SOURCE_FILE (current_function_decl));
chksum = checksum_string (chksum, TREE_FILENAME (current_function_decl));
chksum = checksum_string
(chksum, IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (current_function_decl)));
@ -432,8 +432,8 @@ coverage_begin_output (void)
if (!bbg_function_announced)
{
const char *file = DECL_SOURCE_FILE (current_function_decl);
unsigned line = DECL_SOURCE_LINE (current_function_decl);
const char *file = TREE_FILENAME (current_function_decl);
unsigned line = TREE_LINENO (current_function_decl);
unsigned long offset;
if (!bbg_file_opened)

View File

@ -1,3 +1,9 @@
2003-09-21 Richard Henderson <rth@redhat.com>
* class.c, cp-tree.h, decl.c, decl2.c, error.c, init.c,
method.c, optimize.c, pt.c, semantics.c, tree.c: Update for
DECL_SOURCE_LOCATION rename and change to const.
2003-09-20 Richard Henderson <rth@redhat.com>
* decl.c, decl2.c, pt.c: Use %J in diagnostics.

View File

@ -5212,7 +5212,7 @@ finish_struct (tree t, tree attributes)
/* Nadger the current location so that diagnostics point to the start of
the struct, not the end. */
input_location = DECL_SOURCE_LOCATION (TYPE_NAME (t));
input_location = TREE_LOCUS (TYPE_NAME (t));
if (processing_template_decl)
{

View File

@ -390,7 +390,7 @@ typedef enum cp_id_kind
/* The IDENTIFIER_VALUE is the value of the IDENTIFIER_BINDING, or
NULL_TREE if there is no binding. */
#define IDENTIFIER_VALUE(NODE) \
(IDENTIFIER_BINDING (NODE) ? IDENTIFIER_BINDING (NODE)->value : NULL)
(IDENTIFIER_BINDING (NODE) ? IDENTIFIER_BINDING (NODE)->value : NULL_TREE)
/* If IDENTIFIER_CLASS_VALUE is set, then NODE is bound in the current
class, and IDENTIFIER_CLASS_VALUE is the value binding. This is

View File

@ -1787,7 +1787,7 @@ print_binding_level (struct cp_binding_level* lvl)
continue;
if (no_print_builtins
&& (TREE_CODE (t) == TYPE_DECL)
&& (!strcmp (DECL_SOURCE_FILE (t),"<built-in>")))
&& (!strcmp (TREE_FILENAME (t), "<built-in>")))
continue;
/* Function decls tend to have longer names. */
@ -3153,9 +3153,8 @@ duplicate_decls (tree newdecl, tree olddecl)
if (DECL_INITIAL (DECL_TEMPLATE_RESULT (olddecl)) == NULL_TREE
&& DECL_INITIAL (DECL_TEMPLATE_RESULT (newdecl)) != NULL_TREE)
{
DECL_SOURCE_LOCATION (olddecl)
= DECL_SOURCE_LOCATION (DECL_TEMPLATE_RESULT (olddecl))
= DECL_SOURCE_LOCATION (newdecl);
copy_tree_locus (olddecl, newdecl);
copy_tree_locus (DECL_TEMPLATE_RESULT (olddecl), newdecl);
}
return 1;
@ -3195,13 +3194,13 @@ duplicate_decls (tree newdecl, tree olddecl)
TYPE_RAISES_EXCEPTIONS (oldtype));
if ((pedantic || ! DECL_IN_SYSTEM_HEADER (olddecl))
&& DECL_SOURCE_LINE (olddecl) != 0
&& TREE_LOCUS_SET_P (olddecl)
&& flag_exceptions
&& !comp_except_specs (TYPE_RAISES_EXCEPTIONS (TREE_TYPE (newdecl)),
TYPE_RAISES_EXCEPTIONS (TREE_TYPE (olddecl)), 1))
{
error ("declaration of `%F' throws different exceptions",
newdecl);
newdecl);
cp_error_at ("than previous declaration `%F'", olddecl);
}
}
@ -3232,7 +3231,7 @@ duplicate_decls (tree newdecl, tree olddecl)
&& DECL_INITIAL (olddecl) != NULL_TREE)
{
DECL_INITIAL (newdecl) = DECL_INITIAL (olddecl);
DECL_SOURCE_LOCATION (newdecl) = DECL_SOURCE_LOCATION (olddecl);
copy_tree_locus (newdecl, olddecl);
if (CAN_HAVE_FULL_LANG_DECL_P (newdecl)
&& DECL_LANG_SPECIFIC (newdecl)
&& DECL_LANG_SPECIFIC (olddecl))
@ -3701,7 +3700,7 @@ pushdecl (tree x)
if (TREE_CODE (x) == TYPE_DECL)
{
tree type = TREE_TYPE (x);
if (DECL_SOURCE_LINE (x) == 0)
if (!TREE_LOCUS_SET_P (x))
{
if (TYPE_NAME (type) == 0)
TYPE_NAME (type) = x;
@ -4075,7 +4074,7 @@ pushdecl_class_level (tree x)
for (f = TYPE_FIELDS (TREE_TYPE (x)); f; f = TREE_CHAIN (f))
{
location_t save_location = input_location;
input_location = DECL_SOURCE_LOCATION (f);
input_location = TREE_LOCUS (f);
if (!pushdecl_class_level (f))
is_valid = false;
input_location = save_location;
@ -4520,7 +4519,7 @@ make_label_decl (tree id, int local_p)
/* Say where one reference is to the label, for the sake of the
error if it is not defined. */
DECL_SOURCE_LOCATION (decl) = input_location;
set_tree_locus (decl, input_location);
/* Record the fact that this identifier is bound to this label. */
SET_IDENTIFIER_LABEL_VALUE (id, decl);
@ -4831,7 +4830,7 @@ define_label (location_t location, tree name)
/* Mark label as having been defined. */
DECL_INITIAL (decl) = error_mark_node;
/* Say where in the source. */
DECL_SOURCE_LOCATION (decl) = location;
set_tree_locus (decl, location);
if (ent)
{
ent->names_in_scope = current_binding_level->names;

View File

@ -2240,7 +2240,7 @@ start_static_initialization_or_destruction (tree decl, int initp)
where DECL was declared so that error-messages make sense, and so
that the debugger will show somewhat sensible file and line
information. */
input_location = DECL_SOURCE_LOCATION (decl);
input_location = TREE_LOCUS (decl);
/* Because of:

View File

@ -1959,7 +1959,7 @@ location_of (tree t)
else if (TREE_CODE (t) == OVERLOAD)
t = OVL_FUNCTION (t);
return DECL_SOURCE_LOCATION (t);
return TREE_LOCUS (t);
}
/* Now the interfaces from error et al to dump_type et al. Each takes an

View File

@ -2414,9 +2414,9 @@ create_temporary_var (tree type)
decl = build_decl (VAR_DECL, NULL_TREE, type);
TREE_USED (decl) = 1;
DECL_ARTIFICIAL (decl) = 1;
DECL_SOURCE_LOCATION (decl) = input_location;
DECL_IGNORED_P (decl) = 1;
DECL_CONTEXT (decl) = current_function_decl;
set_tree_locus (decl, input_location);
return decl;
}

View File

@ -719,7 +719,7 @@ synthesize_method (tree fndecl)
where the attempt to generate the function occurs, giving the
user a hint as to why we are attempting to generate the
function. */
DECL_SOURCE_LOCATION (fndecl) = input_location;
set_tree_locus (fndecl, input_location);
interface_unknown = 1;
start_function (NULL_TREE, fndecl, NULL_TREE, SF_DEFAULT | SF_PRE_PARSED);

View File

@ -109,7 +109,7 @@ update_cloned_parm (tree parm, tree cloned_parm)
/* The name may have changed from the declaration. */
DECL_NAME (cloned_parm) = DECL_NAME (parm);
DECL_SOURCE_LOCATION (cloned_parm) = DECL_SOURCE_LOCATION (parm);
copy_tree_locus (cloned_parm, parm);
}
/* FN is a function that has a complete body. Clone the body as
@ -146,7 +146,7 @@ maybe_clone_body (tree fn)
splay_tree decl_map;
/* Update CLONE's source position information to match FN's. */
DECL_SOURCE_LOCATION (clone) = DECL_SOURCE_LOCATION (fn);
copy_tree_locus (clone, fn);
DECL_INLINE (clone) = DECL_INLINE (fn);
DECL_DECLARED_INLINE_P (clone) = DECL_DECLARED_INLINE_P (fn);
DECL_COMDAT (clone) = DECL_COMDAT (fn);

View File

@ -966,10 +966,9 @@ register_specialization (tree spec, tree tmpl, tree args)
else if (DECL_TEMPLATE_SPECIALIZATION (fn))
{
if (!duplicate_decls (spec, fn) && DECL_INITIAL (spec))
/* Dup decl failed, but this is a new
definition. Set the line number so any errors
match this new definition. */
DECL_SOURCE_LOCATION (fn) = DECL_SOURCE_LOCATION (spec);
/* Dup decl failed, but this is a new definition. Set the
line number so any errors match this new definition. */
copy_tree_locus (fn, spec);
return fn;
}
@ -1783,9 +1782,8 @@ check_explicit_specialization (tree declarator,
DECL_INITIAL (DECL_TEMPLATE_RESULT (tmpl)) = NULL_TREE;
if (have_def)
{
DECL_SOURCE_LOCATION (tmpl) = DECL_SOURCE_LOCATION (decl);
DECL_SOURCE_LOCATION (DECL_TEMPLATE_RESULT (tmpl))
= DECL_SOURCE_LOCATION (decl);
copy_tree_locus (tmpl, decl);
copy_tree_locus (DECL_TEMPLATE_RESULT (tmpl), decl);
}
return tmpl;
}
@ -4255,8 +4253,7 @@ lookup_template_class (tree d1,
type_decl = create_implicit_typedef (DECL_NAME (template), t);
DECL_CONTEXT (type_decl) = TYPE_CONTEXT (t);
TYPE_STUB_DECL (t) = type_decl;
DECL_SOURCE_LOCATION (type_decl)
= DECL_SOURCE_LOCATION (TYPE_STUB_DECL (template_type));
copy_tree_locus (type_decl, TYPE_STUB_DECL (template_type));
}
else
type_decl = TYPE_NAME (t);
@ -4712,7 +4709,7 @@ tsubst_friend_function (tree decl, tree args)
tree new_friend;
location_t saved_loc = input_location;
input_location = DECL_SOURCE_LOCATION (decl);
input_location = TREE_LOCUS (decl);
if (TREE_CODE (decl) == FUNCTION_DECL
&& DECL_TEMPLATE_INSTANTIATION (decl)
@ -5153,7 +5150,7 @@ instantiate_class_template (tree type)
/* Set the input location to the template definition. This is needed
if tsubsting causes an error. */
input_location = DECL_SOURCE_LOCATION (TYPE_NAME (pattern));
input_location = TREE_LOCUS (TYPE_NAME (pattern));
TYPE_HAS_CONSTRUCTOR (type) = TYPE_HAS_CONSTRUCTOR (pattern);
TYPE_HAS_DESTRUCTOR (type) = TYPE_HAS_DESTRUCTOR (pattern);
@ -5302,7 +5299,7 @@ instantiate_class_template (tree type)
assist in error message reporting. Since we
called push_tinst_level above, we don't need to
restore these. */
input_location = DECL_SOURCE_LOCATION (t);
input_location = TREE_LOCUS (t);
if (TREE_CODE (t) == TEMPLATE_DECL)
processing_template_decl++;
@ -5411,7 +5408,7 @@ instantiate_class_template (tree type)
implicit functions at a predictable point, and the same point
that would be used for non-template classes. */
typedecl = TYPE_MAIN_DECL (type);
input_location = DECL_SOURCE_LOCATION (typedecl);
input_location = TREE_LOCUS (typedecl);
unreverse_member_declarations (type);
finish_struct_1 (type);
@ -5708,7 +5705,7 @@ tsubst_decl (tree t, tree args, tree type, tsubst_flags_t complain)
/* Set the filename and linenumber to improve error-reporting. */
saved_loc = input_location;
input_location = DECL_SOURCE_LOCATION (t);
input_location = TREE_LOCUS (t);
switch (TREE_CODE (t))
{
@ -10774,7 +10771,7 @@ instantiate_decl (tree d, int defer_ok)
else
pattern_defined = ! DECL_IN_AGGR_P (code_pattern);
input_location = DECL_SOURCE_LOCATION (d);
input_location = TREE_LOCUS (d);
if (pattern_defined)
{
@ -10890,7 +10887,7 @@ instantiate_decl (tree d, int defer_ok)
/* We already set the file and line above. Reset them now in case
they changed as a result of calling
regenerate_decl_from_template. */
input_location = DECL_SOURCE_LOCATION (d);
input_location = TREE_LOCUS (d);
if (TREE_CODE (d) == VAR_DECL)
{
@ -11178,8 +11175,7 @@ tsubst_enum (tree tag, tree newtag, tree args)
}
finish_enum (newtag);
DECL_SOURCE_LOCATION (TYPE_NAME (newtag))
= DECL_SOURCE_LOCATION (TYPE_NAME (tag));
copy_tree_locus (TYPE_NAME (newtag), TYPE_NAME (tag));
}
/* DECL is a FUNCTION_DECL that is a template specialization. Return

View File

@ -2030,7 +2030,7 @@ begin_class_definition (tree t)
}
/* Update the location of the decl. */
DECL_SOURCE_LOCATION (TYPE_NAME (t)) = input_location;
set_tree_locus (TYPE_NAME (t), input_location);
if (TYPE_BEING_DEFINED (t))
{

View File

@ -2153,7 +2153,7 @@ cp_copy_res_decl_for_inlining (tree result,
&& DECL_NAME (var) == NULL_TREE)
{
DECL_NAME (var) = DECL_NAME (nrv);
DECL_SOURCE_LOCATION (var) = DECL_SOURCE_LOCATION (nrv);
copy_tree_locus (var, nrv);
DECL_ABSTRACT_ORIGIN (var) = DECL_ORIGIN (nrv);
/* Don't lose initialization info. */
DECL_INITIAL (var) = DECL_INITIAL (nrv);

View File

@ -2689,7 +2689,7 @@ static void
dbxout_prepare_symbol (tree decl ATTRIBUTE_UNUSED)
{
#ifdef WINNING_GDB
const char *filename = DECL_SOURCE_FILE (decl);
const char *filename = TREE_FILENAME (decl);
dbxout_source_file (asmfile, filename);
#endif
@ -2703,7 +2703,7 @@ dbxout_finish_symbol (tree sym)
#else
int line = 0;
if (use_gnu_debug_info_extensions && sym != 0)
line = DECL_SOURCE_LINE (sym);
line = TREE_LINENO (sym);
fprintf (asmfile, "\",%d,0,%d,", current_sym_code, line);
if (current_sym_addr)

View File

@ -139,7 +139,7 @@ text_specifies_location (text_info *text, location_t *locus)
else if (p[0] == '%' && p[1] == 'J')
{
tree t = va_arg (*text->args_ptr, tree);
*locus = DECL_SOURCE_LOCATION (t);
*locus = TREE_LOCUS (t);
text->format_spec = p + 2;
return true;
}

View File

@ -856,13 +856,13 @@ entity.
@item TREE_TYPE
This macro returns the type of the entity declared.
@item DECL_SOURCE_FILE
@item TREE_FILENAME
This macro returns the name of the file in which the entity was
declared, as a @code{char*}. For an entity declared implicitly by the
compiler (like @code{__builtin_memcpy}), this will be the string
@code{"<internal>"}.
@item DECL_SOURCE_LINE
@item TREE_LINENO
This macro returns the line number at which the entity was declared, as
an @code{int}.

View File

@ -9907,10 +9907,10 @@ add_pure_or_virtual_attribute (dw_die_ref die, tree func_decl)
static void
add_src_coords_attributes (dw_die_ref die, tree decl)
{
unsigned file_index = lookup_filename (DECL_SOURCE_FILE (decl));
unsigned file_index = lookup_filename (TREE_FILENAME (decl));
add_AT_unsigned (die, DW_AT_decl_file, file_index);
add_AT_unsigned (die, DW_AT_decl_line, DECL_SOURCE_LINE (decl));
add_AT_unsigned (die, DW_AT_decl_line, TREE_LINENO (decl));
}
/* Add a DW_AT_name attribute and source coordinate attribute for the
@ -10596,7 +10596,7 @@ gen_subprogram_die (tree decl, dw_die_ref context_die)
}
else if (old_die)
{
unsigned file_index = lookup_filename (DECL_SOURCE_FILE (decl));
unsigned file_index = lookup_filename (TREE_FILENAME (decl));
if (!get_AT_flag (old_die, DW_AT_declaration)
/* We can have a normal definition following an inline one in the
@ -10625,7 +10625,7 @@ gen_subprogram_die (tree decl, dw_die_ref context_die)
&& (DECL_ARTIFICIAL (decl)
|| (get_AT_unsigned (old_die, DW_AT_decl_file) == file_index
&& (get_AT_unsigned (old_die, DW_AT_decl_line)
== (unsigned) DECL_SOURCE_LINE (decl)))))
== (unsigned) TREE_LINENO (decl)))))
{
subr_die = old_die;
@ -10640,9 +10640,9 @@ gen_subprogram_die (tree decl, dw_die_ref context_die)
if (get_AT_unsigned (old_die, DW_AT_decl_file) != file_index)
add_AT_unsigned (subr_die, DW_AT_decl_file, file_index);
if (get_AT_unsigned (old_die, DW_AT_decl_line)
!= (unsigned) DECL_SOURCE_LINE (decl))
!= (unsigned) TREE_LINENO (decl))
add_AT_unsigned
(subr_die, DW_AT_decl_line, DECL_SOURCE_LINE (decl));
(subr_die, DW_AT_decl_line, TREE_LINENO (decl));
}
}
else
@ -10859,16 +10859,16 @@ gen_variable_die (tree decl, dw_die_ref context_die)
add_AT_die_ref (var_die, DW_AT_specification, old_die);
if (DECL_NAME (decl))
{
unsigned file_index = lookup_filename (DECL_SOURCE_FILE (decl));
unsigned file_index = lookup_filename (TREE_FILENAME (decl));
if (get_AT_unsigned (old_die, DW_AT_decl_file) != file_index)
add_AT_unsigned (var_die, DW_AT_decl_file, file_index);
if (get_AT_unsigned (old_die, DW_AT_decl_line)
!= (unsigned) DECL_SOURCE_LINE (decl))
!= (unsigned) TREE_LINENO (decl))
add_AT_unsigned (var_die, DW_AT_decl_line,
DECL_SOURCE_LINE (decl));
TREE_LINENO (decl));
}
}
else
@ -12036,7 +12036,7 @@ dwarf2out_decl (tree decl)
/* Don't bother trying to generate any DIEs to represent any of the
normal built-in types for the language we are compiling. */
if (DECL_SOURCE_LINE (decl) == 0)
if (!TREE_LOCUS_SET_P (decl))
{
/* OK, we need to generate one for `bool' so GDB knows what type
comparisons have. */

View File

@ -3411,10 +3411,10 @@ name_and_src_coords_attributes (tree decl)
Fred Fish sez that m68k/svr4 assemblers botch those. */
ASM_OUTPUT_POP_SECTION (asm_out_file);
file_index = lookup_filename (DECL_SOURCE_FILE (decl));
file_index = lookup_filename (TREE_FILENAME (decl));
ASM_OUTPUT_PUSH_SECTION (asm_out_file, DEBUG_SECTION);
src_coords_attribute (file_index, DECL_SOURCE_LINE (decl));
src_coords_attribute (file_index, TREE_LINENO (decl));
}
#endif /* defined(DWARF_DECL_COORDINATES) */
}
@ -5618,7 +5618,7 @@ dwarfout_file_scope_decl (tree decl, int set_finalizing)
/* ??? This code is different than the equivalent code in dwarf2out.c.
The dwarf2out.c code is probably more correct. */
if (DECL_SOURCE_LINE (decl) == 0
if (!TREE_LOCUS_SET_P (decl)
&& (type_is_fundamental (TREE_TYPE (decl))
|| TREE_CODE (TREE_TYPE (decl)) == LANG_TYPE))
return;

View File

@ -1,3 +1,8 @@
2003-09-21 Richard Henderson <rth@redhat.com>
* com.c, ste.c: Update for DECL_SOURCE_LOCATION rename and
change to const.
2003-09-21 Toon Moene <toon@moene.indiv.nluug.nl>
* news.texi: Update with fixed PR's.

View File

@ -13227,7 +13227,7 @@ duplicate_decls (tree newdecl, tree olddecl)
return 0;
}
else if (TREE_CODE (olddecl) == FUNCTION_DECL
&& DECL_SOURCE_LINE (olddecl) == 0)
&& !TREE_LOCUS_SET_P (olddecl))
{
/* A function declaration for a predeclared function
that isn't actually built in. */
@ -13297,8 +13297,7 @@ duplicate_decls (tree newdecl, tree olddecl)
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);
copy_tree_locus (newdecl, olddecl);
if (DECL_CONTEXT (olddecl) == 0
&& TREE_CODE (newdecl) != FUNCTION_DECL)
@ -14535,7 +14534,7 @@ pushdecl (tree x)
if (TREE_CODE (x) == TYPE_DECL)
{
if (DECL_SOURCE_LINE (x) == 0)
if (!TREE_LOCUS_SET_P (x))
{
if (TYPE_NAME (TREE_TYPE (x)) == 0)
TYPE_NAME (TREE_TYPE (x)) = x;

View File

@ -2392,8 +2392,8 @@ ffeste_labeldef_branch (ffelab label)
assert (DECL_INITIAL (glabel) == NULL_TREE);
DECL_INITIAL (glabel) = error_mark_node;
DECL_SOURCE_FILE (glabel) = ffelab_definition_filename (label);
DECL_SOURCE_LINE (glabel) = ffelab_definition_filelinenum (label);
set_tree_file_line (glabel, ffelab_definition_filename (label),
ffelab_definition_filelinenum (label));
emit_nop ();

View File

@ -6399,8 +6399,8 @@ init_function_start (tree subr)
function. Also tell final how to output a linenum before the
function prologue. Note linenums could be missing, e.g. when
compiling a Java .class file. */
if (DECL_SOURCE_LINE (subr))
emit_line_note (DECL_SOURCE_LOCATION (subr));
if (TREE_LOCUS_SET_P (subr))
emit_line_note (TREE_LOCUS (subr));
/* Make sure first insn is a note even if we don't want linenums.
This makes sure the first insn will never be deleted.

View File

@ -987,7 +987,7 @@ expand_inline_function (tree fndecl, tree parms, rtx target, int ignore,
&& ! (GET_CODE (XEXP (loc, 0)) == REG
&& REGNO (XEXP (loc, 0)) > LAST_VIRTUAL_REGISTER))
{
rtx note = emit_line_note (DECL_SOURCE_LOCATION (formal));
rtx note = emit_line_note (TREE_LOCUS (formal));
if (note)
RTX_INTEGRATED_P (note) = 1;
@ -2985,7 +2985,7 @@ output_inline_function (tree fndecl)
/* Make sure warnings emitted by the optimizers (e.g. control reaches
end of non-void function) is not wildly incorrect. */
input_location = DECL_SOURCE_LOCATION (fndecl);
input_location = TREE_LOCUS (fndecl);
/* Compile this function all the way down to assembly code. As a
side effect this destroys the saved RTL representation, but

View File

@ -1,3 +1,8 @@
2003-09-21 Richard Henderson <rth@redhat.com>
* class.c, decl.c, jcf-parse.c, jcf-write.c, parse.y,
resource.c: Update for DECL_SOURCE_LOCATION rename and change to const.
2003-09-20 Richard Henderson <rth@redhat.com>
* check-init.c, class.c, decl.c, expr.c: Use %J in diagnostics.

View File

@ -1728,8 +1728,8 @@ maybe_layout_super_class (tree super_class, tree this_class)
{
tree this_decl = TYPE_NAME (this_class);
this_wrap = build_expr_wfl (this_class,
DECL_SOURCE_FILE (this_decl),
DECL_SOURCE_LINE (this_decl), 0);
TREE_FILENAME (this_decl),
TREE_LINENO (this_decl), 0);
}
super_class = do_resolve_class (NULL_TREE, /* FIXME? */
super_class, NULL_TREE, this_wrap);
@ -1767,8 +1767,8 @@ layout_class (tree this_class)
tree decl = TYPE_NAME (TREE_PURPOSE (current));
sprintf (buffer, "\n which inherits from `%s' (%s:%d)",
IDENTIFIER_POINTER (DECL_NAME (decl)),
DECL_SOURCE_FILE (decl),
DECL_SOURCE_LINE (decl));
TREE_FILENAME (decl),
TREE_LINENO (decl));
obstack_grow (&temporary_obstack, buffer, strlen (buffer));
}
obstack_1grow (&temporary_obstack, '\0');
@ -2059,7 +2059,6 @@ emit_register_classes (void)
init_decl = build_decl (FUNCTION_DECL, init_name, init_type);
SET_DECL_ASSEMBLER_NAME (init_decl, init_name);
DECL_SOURCE_LINE (init_decl) = 0;
TREE_STATIC (init_decl) = 1;
current_function_decl = init_decl;
DECL_RESULT (init_decl) = build_decl (RESULT_DECL, NULL_TREE,
@ -2084,7 +2083,7 @@ emit_register_classes (void)
for ( t = registered_class; t; t = TREE_CHAIN (t))
emit_library_call (registerClass_libfunc, 0, VOIDmode, 1,
XEXP (DECL_RTL (t), 0), Pmode);
input_location = DECL_SOURCE_LOCATION (init_decl);
input_location = TREE_LOCUS (init_decl);
expand_function_end ();
poplevel (1, 0, 1);
rest_of_compilation (init_decl);

View File

@ -1070,7 +1070,7 @@ pushdecl (tree x)
/* Maybe warn if shadowing something else. */
else if (warn_shadow && !DECL_EXTERNAL (x)
/* No shadow warnings for internally generated vars. */
&& DECL_SOURCE_LINE (x) != 0
&& TREE_LOCUS_SET_P (x)
/* No shadow warnings for vars made for inlining. */
&& ! DECL_FROM_INLINE (x))
{
@ -1817,8 +1817,7 @@ java_expand_body (tree fndecl)
int saved_lineno = input_line;
current_function_decl = fndecl;
input_filename = DECL_SOURCE_FILE (fndecl);
input_line = DECL_SOURCE_LINE (fndecl);
input_location = TREE_LOCUS (fndecl);
timevar_push (TV_EXPAND);

View File

@ -145,8 +145,10 @@ set_source_filename (JCF *jcf, int index)
return;
}
input_filename = sfname;
DECL_SOURCE_FILE (TYPE_NAME (current_class)) = sfname;
if (current_class == main_class) main_input_filename = input_filename;
set_tree_file_line (TYPE_NAME (current_class), sfname,
TREE_LINENO (TYPE_NAME (current_class)));
if (current_class == main_class)
main_input_filename = input_filename;
}
#define HANDLE_SOURCEFILE(INDEX) set_source_filename (jcf, INDEX)
@ -418,7 +420,7 @@ give_name_to_class (JCF *jcf, int i)
tree class_name = unmangle_classname (JPOOL_UTF_DATA (jcf, j),
JPOOL_UTF_LENGTH (jcf, j));
this_class = lookup_class (class_name);
input_filename = DECL_SOURCE_FILE (TYPE_NAME (this_class));
input_filename = TREE_FILENAME (TYPE_NAME (this_class));
input_line = 0;
if (main_input_filename == NULL && jcf == main_jcf)
main_input_filename = input_filename;
@ -708,7 +710,7 @@ parse_class_file (void)
java_layout_seen_class_methods ();
input_filename = DECL_SOURCE_FILE (TYPE_NAME (current_class));
input_filename = TREE_FILENAME (TYPE_NAME (current_class));
input_line = 0;
(*debug_hooks->start_source_file) (input_line, input_filename);
init_outgoing_cpool ();

View File

@ -3113,7 +3113,7 @@ generate_classfile (tree clas, struct jcf_partial *state)
}
ptr = methods_count_ptr; UNSAFE_PUT2 (methods_count);
source_file = DECL_SOURCE_FILE (TYPE_NAME (clas));
source_file = TREE_FILENAME (TYPE_NAME (clas));
for (s = source_file; ; s++)
{
char ch = *s;
@ -3299,7 +3299,7 @@ make_class_file_name (tree clas)
/* Make sure we put the class file into the .java file's
directory, and not into some subdirectory thereof. */
char *t;
dname = DECL_SOURCE_FILE (TYPE_NAME (clas));
dname = TREE_FILENAME (TYPE_NAME (clas));
slash = strrchr (dname, DIR_SEPARATOR);
#ifdef DIR_SEPARATOR_2
if (! slash)

View File

@ -3208,7 +3208,7 @@ classitf_redefinition_error (const char *context, tree id, tree decl, tree cl)
{
parse_error_context (cl, "%s `%s' already defined in %s:%d",
context, IDENTIFIER_POINTER (id),
DECL_SOURCE_FILE (decl), DECL_SOURCE_LINE (decl));
TREE_FILENAME (decl), TREE_LINENO (decl));
/* Here we should point out where its redefined. It's a unicode. FIXME */
}
@ -3716,12 +3716,10 @@ maybe_create_class_interface_decl (tree decl, tree raw_name,
decl = push_class (make_class (), qualified_name);
/* Take care of the file and line business */
DECL_SOURCE_FILE (decl) = EXPR_WFL_FILENAME (cl);
/* If we're emiting xrefs, store the line/col number information */
if (flag_emit_xref)
DECL_SOURCE_LINE (decl) = EXPR_WFL_LINECOL (cl);
else
DECL_SOURCE_LINE (decl) = EXPR_WFL_LINENO (cl);
set_tree_file_line (decl, EXPR_WFL_FILENAME (cl),
(flag_emit_xref
? EXPR_WFL_LINECOL (cl) : EXPR_WFL_LINENO (cl)));
CLASS_FROM_SOURCE_P (TREE_TYPE (decl)) = 1;
CLASS_PARSED_P (TREE_TYPE (decl)) = 1;
CLASS_FROM_CURRENTLY_COMPILED_P (TREE_TYPE (decl)) =
@ -4205,7 +4203,7 @@ duplicate_declaration_error_p (tree new_field_name, tree new_type, tree cl)
(cl , "Duplicate variable declaration: `%s %s' was `%s %s' (%s:%d)",
t1, IDENTIFIER_POINTER (new_field_name),
t2, IDENTIFIER_POINTER (DECL_NAME (decl)),
DECL_SOURCE_FILE (decl), DECL_SOURCE_LINE (decl));
TREE_FILENAME (decl), TREE_LINENO (decl));
free (t1);
free (t2);
return 1;
@ -4687,7 +4685,7 @@ method_header (int flags, tree type, tree mdecl, tree throws)
/* If doing xref, store column and line number information instead
of the line number only. */
if (flag_emit_xref)
DECL_SOURCE_LINE (meth) = EXPR_WFL_LINECOL (id);
set_tree_file_line (meth, TREE_FILENAME (meth), EXPR_WFL_LINECOL (id));
return meth;
}
@ -6705,8 +6703,8 @@ lookup_cl (tree decl)
cl_v = build_expr_wfl (NULL_TREE, NULL, 0, 0);
}
EXPR_WFL_FILENAME_NODE (cl_v) = get_identifier (DECL_SOURCE_FILE (decl));
EXPR_WFL_SET_LINECOL (cl_v, DECL_SOURCE_LINE (decl), -1);
EXPR_WFL_FILENAME_NODE (cl_v) = get_identifier (TREE_FILENAME (decl));
EXPR_WFL_SET_LINECOL (cl_v, TREE_LINENO (decl), -1);
line = java_get_line_col (EXPR_WFL_FILENAME (cl_v),
EXPR_WFL_LINENO (cl_v), EXPR_WFL_COLNO (cl_v));
@ -7286,7 +7284,7 @@ declare_local_variables (int modifier, tree type, tree vlist)
if ((other = lookup_name_in_blocks (name)))
{
variable_redefinition_error (wfl, name, TREE_TYPE (other),
DECL_SOURCE_LINE (other));
TREE_LINENO (other));
continue;
}
@ -7306,7 +7304,8 @@ declare_local_variables (int modifier, tree type, tree vlist)
/* If doing xreferencing, replace the line number with the WFL
compound value */
if (flag_emit_xref)
DECL_SOURCE_LINE (decl) = EXPR_WFL_LINECOL (wfl);
set_tree_file_line (decl, TREE_FILENAME (decl),
EXPR_WFL_LINECOL (wfl));
/* Don't try to use an INIT statement when an error was found */
if (init && java_error_count)
@ -7414,7 +7413,7 @@ create_artificial_method (tree class, int flags, tree type,
static void
start_artificial_method_body (tree mdecl)
{
DECL_SOURCE_LINE (mdecl) = 1;
set_tree_file_line (mdecl, TREE_FILENAME (mdecl), 1);
DECL_FUNCTION_LAST_LINE (mdecl) = 1;
source_start_java_method (mdecl);
enter_block ();
@ -7980,7 +7979,7 @@ start_complete_expand_method (tree mdecl)
TREE_CHAIN (tem) = next;
}
pushdecl_force_head (DECL_ARGUMENTS (mdecl));
input_line = DECL_SOURCE_LINE (mdecl);
input_location = TREE_LOCUS (mdecl);
build_result_decl (mdecl);
}
@ -10145,7 +10144,7 @@ check_deprecation (tree wfl, tree decl)
to the record. */
decl = TYPE_NAME (TREE_TYPE (elt));
}
file = DECL_SOURCE_FILE (decl);
file = TREE_FILENAME (decl);
/* Complain if the field is deprecated and the file it was defined
in isn't compiled at the same time the file which contains its

View File

@ -114,7 +114,6 @@ write_resource_constructor (void)
init_type = build_function_type (void_type_node, end_params_node);
init_decl = build_decl (FUNCTION_DECL, init_name, init_type);
DECL_SOURCE_LINE (init_decl) = 0;
SET_DECL_ASSEMBLER_NAME (init_decl, init_name);
TREE_STATIC (init_decl) = 1;
current_function_decl = init_decl;
@ -140,7 +139,7 @@ write_resource_constructor (void)
Pmode);
}
input_location = DECL_SOURCE_LOCATION (init_decl);
input_location = TREE_LOCUS (init_decl);
expand_function_end ();
poplevel (1, 0, 1);
{

View File

@ -1984,13 +1984,12 @@ build_selector_translation_table (void)
}
if (!found)
{
/* Adjust line number for warning message. */
int save_lineno = input_line;
location_t loc = input_location;
if (flag_next_runtime && TREE_PURPOSE (chain))
input_line = DECL_SOURCE_LINE (TREE_PURPOSE (chain));
warning ("creating selector for non existant method %s",
IDENTIFIER_POINTER (TREE_VALUE (chain)));
input_line = save_lineno;
loc = TREE_LOCUS (TREE_PURPOSE (chain));
warning ("%Hcreating selector for non existant method %s",
&loc, IDENTIFIER_POINTER (TREE_VALUE (chain)));
}
}
@ -2857,7 +2856,6 @@ build_tmp_function_decl (void)
expr_decl = build1 (INDIRECT_REF, NULL_TREE, expr_decl);
tmp_decl = define_decl (expr_decl, decl_specs);
DECL_SOURCE_LINE (tmp_decl) = 0;
return tmp_decl;
}

View File

@ -368,7 +368,7 @@ print_node (FILE *file, const char *prefix, tree node, int indent)
fprintf (file, " %s", GET_MODE_NAME (mode));
fprintf (file, " file %s line %d",
DECL_SOURCE_FILE (node), DECL_SOURCE_LINE (node));
TREE_FILENAME (node), TREE_LINENO (node));
print_node (file, "size", DECL_SIZE (node), indent + 4);
print_node (file, "unit size", DECL_SIZE_UNIT (node), indent + 4);

View File

@ -3981,7 +3981,7 @@ expand_decl_init (tree decl)
}
else if (DECL_INITIAL (decl) && TREE_CODE (DECL_INITIAL (decl)) != TREE_LIST)
{
emit_line_note (DECL_SOURCE_LOCATION (decl));
emit_line_note (TREE_LOCUS (decl));
expand_assignment (decl, DECL_INITIAL (decl), 0);
emit_queue ();
}

View File

@ -1709,7 +1709,7 @@ warn_deprecated_use (tree node)
if (DECL_P (node))
warning ("`%s' is deprecated (declared at %s:%d)",
IDENTIFIER_POINTER (DECL_NAME (node)),
DECL_SOURCE_FILE (node), DECL_SOURCE_LINE (node));
TREE_FILENAME (node), TREE_LINENO (node));
else if (TYPE_P (node))
{
const char *what = NULL;
@ -1725,13 +1725,13 @@ warn_deprecated_use (tree node)
{
if (decl)
warning ("`%s' is deprecated (declared at %s:%d)", what,
DECL_SOURCE_FILE (decl), DECL_SOURCE_LINE (decl));
TREE_FILENAME (decl), TREE_LINENO (decl));
else
warning ("`%s' is deprecated", what);
}
else if (decl)
warning ("type is deprecated (declared at %s:%d)",
DECL_SOURCE_FILE (decl), DECL_SOURCE_LINE (decl));
TREE_FILENAME (decl), TREE_LINENO (decl));
else
warning ("type is deprecated");
}

View File

@ -321,18 +321,18 @@ dequeue_and_dump (dump_info_p di)
queue_and_dump_type (di, t);
dump_child ("scpe", DECL_CONTEXT (t));
/* And a source position. */
if (DECL_SOURCE_FILE (t))
if (TREE_FILENAME (t))
{
const char *filename = strrchr (DECL_SOURCE_FILE (t), '/');
const char *filename = strrchr (TREE_FILENAME (t), '/');
if (!filename)
filename = DECL_SOURCE_FILE (t);
filename = TREE_FILENAME (t);
else
/* Skip the slash. */
++filename;
dump_maybe_newline (di);
fprintf (di->stream, "srcp: %s:%-6d ", filename,
DECL_SOURCE_LINE (t));
TREE_LINENO (t));
di->column += 6 + strlen (filename) + 8;
}
/* And any declaration can be compiler-generated. */

View File

@ -1322,7 +1322,7 @@ expand_call_inline (tree *tp, int *walk_subtrees, void *data)
line numbers corresponding to the function we are calling. We
wrap the whole inlined body in an EXPR_WITH_FILE_AND_LINE as well
because individual statements don't record the filename. */
push_srcloc (DECL_SOURCE_FILE (fn), DECL_SOURCE_LINE (fn));
push_srcloc (TREE_FILENAME (fn), TREE_LINENO (fn));
#ifndef INLINER_FOR_JAVA
/* Build a statement-expression containing code to initialize the
@ -1522,7 +1522,7 @@ expand_call_inline (tree *tp, int *walk_subtrees, void *data)
#ifndef INLINER_FOR_JAVA
chain = TREE_CHAIN (*tp);
#endif /* INLINER_FOR_JAVA */
*tp = build_expr_wfl (expr, DECL_SOURCE_FILE (fn), DECL_SOURCE_LINE (fn),
*tp = build_expr_wfl (expr, TREE_FILENAME (fn), TREE_LINENO (fn),
/*col=*/0);
EXPR_WFL_EMIT_LINE_NOTE (*tp) = 1;
#ifndef INLINER_FOR_JAVA

View File

@ -105,7 +105,7 @@ tree_rest_of_compilation (tree fndecl, bool nested_p)
/* Initialize the RTL code for the function. */
current_function_decl = fndecl;
saved_loc = input_location;
input_location = DECL_SOURCE_LOCATION (fndecl);
input_location = TREE_LOCUS (fndecl);
init_function_start (fndecl);
/* This function is being processed in whole-function mode. */

View File

@ -287,7 +287,7 @@ make_node (enum tree_code code)
DECL_ALIGN (t) = 1;
DECL_USER_ALIGN (t) = 0;
DECL_IN_SYSTEM_HEADER (t) = in_system_header;
DECL_SOURCE_LOCATION (t) = input_location;
set_tree_locus (t, input_location);
DECL_UID (t) = next_decl_uid++;
/* We have not yet computed the alias set for this declaration. */

View File

@ -327,7 +327,7 @@ DEFTREECODE (STRING_CST, "string_cst", 'c', 0)
built-in functions. Its value is an enum built_in_function
that says which built-in function it is.
DECL_SOURCE_FILE holds a filename string and DECL_SOURCE_LINE
TREE_FILENAME holds a filename string and TREE_LINENO
holds a line number. In some cases these can be the location of
a reference, if no definition has been seen.

View File

@ -802,6 +802,29 @@ struct tree_vec GTY(())
#define TREE_OPERAND(NODE, I) TREE_OPERAND_CHECK (NODE, I)
#define TREE_COMPLEXITY(NODE) (EXPR_CHECK (NODE)->exp.complexity)
/* These macros access the location of a declaration. For 3.4, this is
only defined for DECLs, but for 3.5 it will be valid on EXPRs as well;
thus the name is not decl specific. The values accessed from the
uppercase macros are intentionally read-only. Use the setter functions
to write to this field. */
#define TREE_LOCUS(NODE) \
(*(const location_t *)&DECL_CHECK (NODE)->decl.locus)
#define TREE_FILENAME(NODE) (TREE_LOCUS (NODE).file)
#define TREE_LINENO(NODE) (TREE_LOCUS (NODE).line)
#define TREE_LOCUS_SET_P(NODE) (TREE_LINENO (NODE) != 0)
#define set_tree_locus(NODE, LOC) \
((void)(DECL_CHECK (NODE)->decl.locus = (LOC)))
#define copy_tree_locus(DEST, SRC) \
((void)(DECL_CHECK (DEST)->decl.locus = DECL_CHECK (SRC)->decl.locus))
#define set_tree_file_line(NODE, FILE, LINE) \
do { \
location_t *l_ = &DECL_CHECK (NODE)->decl.locus; \
l_->file = (FILE); \
l_->line = (LINE); \
} while (0)
/* In a LABELED_BLOCK_EXPR node. */
#define LABELED_BLOCK_LABEL(NODE) \
TREE_OPERAND_CHECK_CODE (NODE, LABELED_BLOCK_EXPR, 0)
@ -1309,13 +1332,6 @@ struct tree_type GTY(())
/* For a FIELD_DECL in a QUAL_UNION_TYPE, records the expression, which
if nonzero, indicates that the field occupies the type. */
#define DECL_QUALIFIER(NODE) (FIELD_DECL_CHECK (NODE)->decl.initial)
/* These two fields describe where in the source code the declaration
was. If the declaration appears in several places (as for a C
function that is declared first and then defined later), this
information should refer to the definition. */
#define DECL_SOURCE_LOCATION(NODE) (DECL_CHECK (NODE)->decl.locus)
#define DECL_SOURCE_FILE(NODE) (DECL_SOURCE_LOCATION (NODE).file)
#define DECL_SOURCE_LINE(NODE) (DECL_SOURCE_LOCATION (NODE).line)
/* Holds the size of the datum, in bits, as a tree expression.
Need not be constant. */
#define DECL_SIZE(NODE) (DECL_CHECK (NODE)->decl.size)

View File

@ -1,3 +1,8 @@
2003-09-21 Richard Henderson <rth@redhat.com>
* treetree.c: Update for DECL_SOURCE_LOCATION rename and
change to const.
2003-07-28 Andreas Jaeger <aj@suse.de>
* treetree.c: Convert remaining K&R prototypes to ISO C90.

View File

@ -313,8 +313,9 @@ tree_code_create_function_prototype (unsigned char* chars,
id = get_identifier ((const char*)chars);
fn_decl = build_decl (FUNCTION_DECL, id, fn_type);
DECL_CONTEXT (fn_decl) = NULL_TREE; /* Nested functions not supported here. */
DECL_SOURCE_LOCATION (fn_decl) = loc;
/* Nested functions not supported here. */
DECL_CONTEXT (fn_decl) = NULL_TREE;
set_tree_locus (fn_decl, loc);
TREE_USED (fn_decl) = 1;
@ -387,14 +388,14 @@ tree_code_create_function_initial (tree prev_saved,
current_function_decl = fn_decl;
DECL_INITIAL (fn_decl) = error_mark_node;
DECL_SOURCE_LOCATION (fn_decl) = loc;
set_tree_locus (fn_decl, loc);
/* Prepare creation of rtl for a new function. */
resultdecl = DECL_RESULT (fn_decl)
= build_decl (RESULT_DECL, NULL_TREE, TREE_TYPE (TREE_TYPE (fn_decl)));
DECL_CONTEXT (DECL_RESULT (fn_decl)) = fn_decl;
DECL_SOURCE_LOCATION (resultdecl) = loc;
set_tree_locus (resultdecl, loc);
/* Work out the size. ??? is this needed. */
layout_decl (DECL_RESULT (fn_decl), 0);
@ -414,7 +415,7 @@ tree_code_create_function_initial (tree prev_saved,
if (!fn_decl)
abort ();
DECL_CONTEXT (parm_decl) = fn_decl;
DECL_SOURCE_LOCATION (parm_decl) = loc;
set_tree_locus (parm_decl, loc);
parm_list = chainon (parm_decl, parm_list);
}
@ -582,7 +583,7 @@ tree_code_create_variable (unsigned int storage_class,
DECL_CONTEXT (var_decl) = current_function_decl;
DECL_SOURCE_LOCATION (var_decl) = loc;
set_tree_locus (var_decl, loc);
/* Set the storage mode and whether only visible in the same file. */
switch (storage_class)

View File

@ -411,7 +411,7 @@ xcoffout_declare_function (FILE *file, tree decl, const char *name)
/* Any pending .bi or .ei must occur before the .function pseudo op.
Otherwise debuggers will think that the function is in the previous
file and/or at the wrong line number. */
xcoffout_source_file (file, DECL_SOURCE_FILE (decl), 0);
xcoffout_source_file (file, TREE_FILENAME (decl), 0);
dbxout_symbol (decl, 0);
/* .function NAME, TOP, MAPPING, TYPE, SIZE