]> gcc.gnu.org Git - gcc.git/commitdiff
tree.h (TREE_LOCUS): Rename from DECL_SOURCE_LOCATION; make const.
authorRichard Henderson <rth@redhat.com>
Sun, 21 Sep 2003 23:39:40 +0000 (16:39 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Sun, 21 Sep 2003 23:39:40 +0000 (16:39 -0700)
* 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

52 files changed:
gcc/ChangeLog
gcc/ada/ChangeLog
gcc/ada/trans.c
gcc/ada/utils.c
gcc/c-aux-info.c
gcc/c-decl.c
gcc/c-parse.in
gcc/config/alpha/alpha.c
gcc/config/mips/mips.c
gcc/coverage.c
gcc/cp/ChangeLog
gcc/cp/class.c
gcc/cp/cp-tree.h
gcc/cp/decl.c
gcc/cp/decl2.c
gcc/cp/error.c
gcc/cp/init.c
gcc/cp/method.c
gcc/cp/optimize.c
gcc/cp/pt.c
gcc/cp/semantics.c
gcc/cp/tree.c
gcc/dbxout.c
gcc/diagnostic.c
gcc/doc/c-tree.texi
gcc/dwarf2out.c
gcc/dwarfout.c
gcc/f/ChangeLog
gcc/f/com.c
gcc/f/ste.c
gcc/function.c
gcc/integrate.c
gcc/java/ChangeLog
gcc/java/class.c
gcc/java/decl.c
gcc/java/jcf-parse.c
gcc/java/jcf-write.c
gcc/java/parse.y
gcc/java/resource.c
gcc/objc/objc-act.c
gcc/print-tree.c
gcc/stmt.c
gcc/toplev.c
gcc/tree-dump.c
gcc/tree-inline.c
gcc/tree-optimize.c
gcc/tree.c
gcc/tree.def
gcc/tree.h
gcc/treelang/ChangeLog
gcc/treelang/treetree.c
gcc/xcoffout.c

index c14137bb437d61137b6470b28290f5c1198e4dbb..a288901d29049e6a51d9736db27060a4062d43ee 100644 (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.
index 2dfbc3717b93deaf57abca4e2b51c1ee9d08972c..51ba6b4783d1e070b6f92109824a1ef5267368d2 100644 (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".
index 8e6f9ac4e497c93ceb64154013cb8e358e427d42..889b267cd178238f8778a35c2c05fe9463c61f08 100644 (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.  */
index 186b0fdb175ee8fb724c53fd67ba43bb581c9d6b..eddfb32001162259d3d29215cce16bd85adb068d 100644 (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;
 }
index e785ade2239c7971abdddd2fa51dbaa0d3b9fb50..0a14839a357fd529a4eee106ce063400b9160692 100644 (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));
index db35f9a9ea9cf127f400d724fc450ea4b57cdb11..f58f5601d9e3b581d7a39a905ca1431e637ec20e 100644 (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)
index bb9cc1a77032daf97bc80d82c39a805be1bb76f4..35825461b33c4e779fcaf7760dd8cd94b70abc63 100644 (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 {}',
index 72d01af2f153595d10c2a053274000f5cf4b1a09..4b32ca0a90723a5b53fc7135cd86218ee8c2568a 100644 (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
     }
 
index 8bd2139d9efbd54b0bf1928f95143272d044b1db..307027ed56fc296ccdd5c11442e0b8792c12436e 100644 (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
index e6f4129dd79011e368cd01ea477d1d2503e9b04a..dc10206cef8366199fbbc25a62ef2d8b2f2afdba 100644 (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)
index 2734bf6f4d4fddc9eb360f3690808cf133cc4233..19c3c481343f31f37de385760f969fc7d1c7e754 100644 (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.
index 17ff0e49674d5b0c1ad100651ff204d863941c59..ebcad8041a53080663d57af29c8b0631f4d0a958 100644 (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)
     {
index ef38d5565d801b43e0f1864b2873fba27a175c14..8f931aa05b18aba2c45af11820f6318839b823a5 100644 (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
index 892affacc82092635fe32b51ef8a69f034d6f085..376d8de10dedd10a9692fb278ab675c8c62edc83 100644 (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;
index b1ee970464e0c59c07619cac162e39147a1b817e..084cc9b102133c81097630e16a658b3fd07de916 100644 (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:
 
index a10dcf6a87611506e967a23e9b31584fd3e1c020..74d1218af1e78d447aa075399376b463ecfc5c75 100644 (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
index ace82cdc39f96fefc8cb138ecd3e62785671e60a..4427754ea40e6ae687688814afbd536fe8c08149 100644 (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;
 }
index 52770042bee66cdf7764069eb59966abe49cc50b..b5d5e327770c0c4ac292467896c6e2fbf3e62a8d 100644 (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);
index 2b7df6c52440a9e559695314f1d470f572145579..a817084bb82679c8ca94478f3760d65ed89384a9 100644 (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);
index 12baea14a33b0711ba565fdcbfd462f1b6447f29..c1d49e7b0563755e08c86385bb2e6ff2d68ee9bb 100644 (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
index ef42579f34994884012305bf86952bed8145191f..ca04ddf26b66e9b3b27271b14b54f956b4a5c055 100644 (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))
     {
index 0c729d6118c81b156eff8a2715e64792139b0fb4..6dce605dbd1bf31c2b31f9d97e4420a38c9cc55f 100644 (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);
index e4c797894c0421158374fbff0fd93b2809c93e85..3f457b594b613737f7a51b08f9d8fa909fc1aaaf 100644 (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)
index c29867a60b3546644e62c4fb7f9e6bb294b538ea..953733995b2686936f5c43f9fb7223cab3cffadd 100644 (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;
     }
index 29ccaec317dedfeaebda8caf7922066bb9c29da7..7f125ee58d6228ff5ba4a28e48171d04fec25207 100644 (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}.
 
index 5fa730e1b55c5f0fe5c3ad66439e3f35219bc31d..dc28f11c1422ad0f37740d4fe1ba280ed3703720 100644 (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.  */
index dfd1f0b57e1c6e4402b6cedd2fe7669f9278ab77..0ad9d0fcf1f002d73e059d48425d27be07c98180 100644 (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;
index e98507002f32abd75cbef4bd572be9d4d162becf..5d588e974d8a1b5c0d8d388af4cf341483ee1551 100644 (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.
index a5100d9bfa9297448ff5cb6489bf3dad87ebb1d0..9658a544bad7cddb8c354a6005023b81cbd7e318 100644 (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;
index 82435bc8dc8e2bbf8a8b5e7e463a6ad242c93a31..dc0d27e9da17fd49ff419f5ab9856a35a9dfc112 100644 (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 ();
 
index baec4ab3048a3c337a2e54a0583d022abd3eeb83..1af4d38ff0112ccb3c34214103f7367681e03ed8 100644 (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.
index 21a738ea237bc0beb89fe5e75f5903d37e267ade..2c6ff174551fe31dc95b40793b1cafeac8ec1acf 100644 (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
index a14c1db559734ae9b396c15aaaaa7e0863c66cdf..be46849d5fe944b126f7507dbea3412c472ef660 100644 (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.
index e3e6cc36e586b5f6b65a3cf5d0b45c8496e08a50..289dbfa2eb89f152c1190aba3021676909ef689a 100644 (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);
index 7ddf704efad777761819a36d89d122accde601cf..d92bbdce4ad4e6f42fc8ece729a89372a4f3fd33 100644 (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);
 
index f47dbe0897a27e020468402508877500c7031214..eea2a15ced88129775685c62b46011b14ce1c9e6 100644 (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 ();
index 82c77b1c831014fc576f0dee620c77a8adb035d9..bc76c8888e8d2bddf3e21192472f2707e7e52194 100644 (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)
index a5064e18465afde11729515f2a01f540ba5c5db6..de0a7d40fa3b66b3558865db7baa643ee5291fca 100644 (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
index b71a6709f5efbcc4b4246e95e5668ec40da238a7..25b8a81010df194f83b42924db3a871834968422 100644 (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);
   { 
index 0c07543050204b744e1cf147a8560186529f07a9..02678a4fb653c20967a400c256da41ee3b42a0c2 100644 (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;
 }
index 3d6c01e01eeb73e0cdee5729a987af5c59cb5a48..40495009d9dfc1043213856aee09019cc4a3dfea 100644 (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);
index 9d5553f2517263fb996b4223acb0dda00d0b1687..40ad357a334e340f3a8c1cbfc50416a0481a29d9 100644 (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 ();
     }
index 03485bc8aed04ff4117ca955eafec4b7a32c13a3..559e68289905fbcd267426467e526620fa0c3d7b 100644 (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");
     }
index c3696336c4465f6e4e044ba0f916a8ffc4da79ba..296d19c992e3cd00ee22a1cbe773d1e2dcbd54d6 100644 (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.  */
index e4e24b2b3b27e6a7a6c1f22c3784b96ecb28cce7..13cb5bb19c13acbea053c198116efcbbd470a592 100644 (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
index e6049cb2b29c6300418a0a1e314690e6cf23ac93..ab11f4d2ad3cda33c0f2f40d41b1d4ef9b5c9555 100644 (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.  */
index b82a6bf6965fc60392d768a8532c458d49e92747..ef720aea27b783cb9d3ef3b90e7772266c44fbd4 100644 (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.  */
index 4b6d236dde6efa2b4d2757a97cc2db3646a71d23..f603f2455c052b4d8f68099c81dc68fb557c9340 100644 (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.
 
index d742bc3d95b3dca2af81e999b62540d306629642..2d879442a42fd99c0f76d37f2bb11e6ba5567c3f 100644 (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)
index 7b8a5a5b8c9ab7d59371392880c7814c0743319c..75b9b2fefa28da568729273f33fb01064e51c22e 100644 (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.
index 7697e3c49e51c2acf54069252933f41440c6d7be..da92110b4b79ddd33d397a6d52a0e60ecca0baaa 100644 (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)
index 7c03ca5b096cc3f5d97ce2a4d6c68fcb35eba24d..0999af941f4f462e43a7207f87203d8c9c9bad21 100644 (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
This page took 0.25473 seconds and 5 git commands to generate.