c-decl.c (duplicate_decls): Copy DECL_SOURCE_LOCATION, not file and line separately.
authorRichard Henderson <rth@redhat.com>
Sun, 28 Sep 2003 22:18:33 +0000 (15:18 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Sun, 28 Sep 2003 22:18:33 +0000 (15:18 -0700)
        * c-decl.c (duplicate_decls): Copy DECL_SOURCE_LOCATION, not
        file and line separately.

f/
        * com.c (duplicate_decls): Copy DECL_SOURCE_LOCATION, not
        file and line separately.
java/
        * check-init.c (check_init): Save and restore input_location
        instead of file and line separately.
        * decl.c (java_expand_body): Likewise.
        * jcf-write.c (generate_bytecode_insns): Likewise.
        * parse.y (safe_layout_class): Likewise.
        * jcf-parse.c (read_class, parse_class_file): Likewise.
        (java_parse_file): Use %H for warning locator.

From-SVN: r71886

gcc/ChangeLog
gcc/c-decl.c
gcc/f/ChangeLog
gcc/f/com.c
gcc/java/ChangeLog
gcc/java/check-init.c
gcc/java/decl.c
gcc/java/jcf-parse.c
gcc/java/jcf-write.c
gcc/java/parse.y

index 1d15edc62bac3d36a2865f7b758bbf838a92b6c2..098aef0fdd70b6fdc2eac4d2afdc15d8d1b461a8 100644 (file)
@@ -1,3 +1,8 @@
+2003-09-28  Richard Henderson  <rth@redhat.com>
+
+       * c-decl.c (duplicate_decls): Copy DECL_SOURCE_LOCATION, not
+       file and line separately.
+
 2003-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
 
        * config/s390/s390.md ("*adddi3_carry1_cc", "*adddi3_carry1_cconly",
index 31cb22347f912ec32e1524d7211b5f6429dc5d11..69110efa4778caf223fa5e4543343e15c736b3c6 100644 (file)
@@ -1305,10 +1305,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);
-       }
+       DECL_SOURCE_LOCATION (newdecl) = DECL_SOURCE_LOCATION (olddecl);
 
       /* Merge the unused-warning information.  */
       if (DECL_IN_SYSTEM_HEADER (olddecl))
index 8ab5c2c3ab42fd723906f5d4dccaae798b2d985d..e97a71097c7a0a9ce844ea3a5dbd0a9748f0b9f9 100644 (file)
@@ -1,3 +1,8 @@
+2003-09-28  Richard Henderson  <rth@redhat.com>
+
+       * com.c (duplicate_decls): Copy DECL_SOURCE_LOCATION, not
+       file and line separately.
+
 2003-09-21  Richard Henderson  <rth@redhat.com>
 
        * com.c, ste.c: Revert.
index a5100d9bfa9297448ff5cb6489bf3dad87ebb1d0..e992cb90b773c1b84946e5f2af7af18bac9a908e 100644 (file)
@@ -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);
+         DECL_SOURCE_LOCATION (newdecl) = DECL_SOURCE_LOCATION (olddecl);
 
          if (DECL_CONTEXT (olddecl) == 0
              && TREE_CODE (newdecl) != FUNCTION_DECL)
index 4ec9a3c657856c8e298c6b4455a57c2c0af78be8..f2a990cdf6288c76f477f3717b5fb229d41b1429 100644 (file)
@@ -1,3 +1,13 @@
+2003-09-28  Richard Henderson  <rth@redhat.com>
+
+       * check-init.c (check_init): Save and restore input_location
+       instead of file and line separately.
+       * decl.c (java_expand_body): Likewise.
+       * jcf-write.c (generate_bytecode_insns): Likewise.
+       * parse.y (safe_layout_class): Likewise.
+       * jcf-parse.c (read_class, parse_class_file): Likewise.
+       (java_parse_file): Use %H for warning locator.
+
 2003-09-28  Roger Sayle  <roger@eyesopen.com>
 
        * expr.c (java_check_reference): Use the semantics of COND_EXPRs
index 03af2faf1cfd4313d7cc62c982ae7b741cb8be71..c4e394844100835bcb87f9752f63d61cf947c0db 100644 (file)
@@ -886,18 +886,16 @@ check_init (tree exp, words before)
 
     case EXPR_WITH_FILE_LOCATION:
       {
-       const char *saved_input_filename = input_filename;
+       location_t saved_location = input_location;
        tree saved_wfl = wfl;
        tree body = EXPR_WFL_NODE (exp);
-       int saved_lineno = input_line;
        if (body == empty_stmt_node)
          break;
        wfl = exp;
        input_filename = EXPR_WFL_FILENAME (exp);
        input_line = EXPR_WFL_LINENO (exp);
        check_init (body, before);
-       input_filename = saved_input_filename;
-       input_line = saved_lineno;
+       input_location = saved_location;
        wfl = saved_wfl;
       }
       break;
index 074a093198408d2a6d3da20934a9a0ec3ac810c3..4e413de897d1db5ebffe486f032551928d98f7fe 100644 (file)
@@ -1816,12 +1816,10 @@ end_java_method (void)
 void
 java_expand_body (tree fndecl)
 {
-  const char *saved_input_filename = input_filename;
-  int saved_lineno = input_line;
+  location_t saved_location = input_location;
 
   current_function_decl = fndecl;
-  input_filename = DECL_SOURCE_FILE (fndecl);
-  input_line = DECL_SOURCE_LINE (fndecl);
+  input_location = DECL_SOURCE_LOCATION (fndecl);
 
   timevar_push (TV_EXPAND);
 
@@ -1858,8 +1856,7 @@ java_expand_body (tree fndecl)
 
   timevar_pop (TV_EXPAND);
 
-  input_filename = saved_input_filename;
-  input_line = saved_lineno;
+  input_location = saved_location;
 
   current_function_decl = NULL_TREE;
 }
index 9f4beb5b3a3cfebe01a28c39fd64627e9992c93e..4abd6ceac6efbc2ef58b2600a6a51aebabb93c08 100644 (file)
@@ -472,7 +472,7 @@ read_class (tree name)
   JCF this_jcf, *jcf;
   tree icv, class = NULL_TREE;
   tree save_current_class = current_class;
-  const char *save_input_filename = input_filename;
+  location_t save_location = input_location;
   JCF *save_current_jcf = current_jcf;
 
   if ((icv = IDENTIFIER_CLASS_VALUE (name)) != NULL_TREE)
@@ -550,7 +550,7 @@ read_class (tree name)
     }
 
   current_class = save_current_class;
-  input_filename = save_input_filename;
+  input_location = save_location;
   current_jcf = save_current_jcf;
   return 1;
 }
@@ -703,8 +703,7 @@ static void
 parse_class_file (void)
 {
   tree method;
-  const char *save_input_filename = input_filename;
-  int save_lineno = input_line;
+  location_t save_location = input_location;
 
   java_layout_seen_class_methods ();
 
@@ -799,9 +798,8 @@ parse_class_file (void)
 
   finish_class ();
 
-  (*debug_hooks->end_source_file) (save_lineno);
-  input_filename = save_input_filename;
-  input_line = save_lineno;
+  (*debug_hooks->end_source_file) (save_location.line);
+  input_location = save_location;
 }
 
 /* Parse a source file, as pointed by the current value of INPUT_FILENAME. */
@@ -984,10 +982,11 @@ java_parse_file (int set_yydebug ATTRIBUTE_UNUSED)
 
          if (twice)
            {
-             const char *saved_input_filename = input_filename;
-             input_filename = value;
-             warning ("source file seen twice on command line and will be compiled only once");
-             input_filename = saved_input_filename;
+             location_t warn_loc;
+             warn_loc.file = value;
+             warn_loc.line = 0;
+             warning ("%Hsource file seen twice on command line and "
+                      "will be compiled only once", &warn_loc);
            }
          else
            {
index aed6eb9773b7ee3b79e517b648322768b26474db..b4a9e1b68768f4827c607a1b1d6143c29e69a738 100644 (file)
@@ -1417,9 +1417,8 @@ generate_bytecode_insns (tree exp, int target, struct jcf_partial *state)
       break;
     case EXPR_WITH_FILE_LOCATION:
       {
-       const char *saved_input_filename = input_filename;
+       location_t saved_location = input_location;
        tree body = EXPR_WFL_NODE (exp);
-       int saved_lineno = input_line;
        if (body == empty_stmt_node)
          break;
        input_filename = EXPR_WFL_FILENAME (exp);
@@ -1428,8 +1427,7 @@ generate_bytecode_insns (tree exp, int target, struct jcf_partial *state)
            && debug_info_level > DINFO_LEVEL_NONE)
          put_linenumber (input_line, state);
        generate_bytecode_insns (body, target, state);
-       input_filename = saved_input_filename;
-       input_line = saved_lineno;
+       input_location = saved_location;
       }
       break;
     case INTEGER_CST:
index 3b38a1eb3bf6de35f891af8473bd1334a67af5c8..541e2b2429ac70140d7c5e266f7c34e26aa896a8 100644 (file)
@@ -5461,14 +5461,12 @@ void
 safe_layout_class (tree class)
 {
   tree save_current_class = current_class;
-  const char *save_input_filename = input_filename;
-  int save_lineno = input_line;
+  location_t save_location = input_location;
 
   layout_class (class);
 
   current_class = save_current_class;
-  input_filename = save_input_filename;
-  input_line = save_lineno;
+  input_location = save_location;
 }
 
 static tree