Various fixes to allow us to again build if --enable-mapped-location:
authorPer Bothner <per@bothner.com>
Mon, 7 Mar 2005 21:14:12 +0000 (13:14 -0800)
committerPer Bothner <bothner@gcc.gnu.org>
Mon, 7 Mar 2005 21:14:12 +0000 (13:14 -0800)
* c-decl.c (finish_function): Use SET_EXPR_LOCATION instead of
unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
* tree-cfg.c (remove_bb): If USE_MAPPED_LOCATION, change type of
local variable loc. Change logic appropriately.
* tree-vect-transform.c (vect_finish_stmt_generation): Use
EXPR_LOCATION rather than EXPR_LOCUS if USE_MAPPED_LOCATION.
* c-parser.c (c_parser_for_statement): Initialize loc variable.
* tree.h (DECL_IS_BUILTIN): Temporarily revert definition of
DECL_IS_BUILTIN in the USE_MAPPED_LOCATION because of jc1 issues.

From-SVN: r96045

gcc/ChangeLog
gcc/c-decl.c
gcc/c-parser.c
gcc/tree-cfg.c
gcc/tree-vect-transform.c
gcc/tree.h

index 86bc853c1c032c540ace3b852e97b4006c0da2fc..dc3a09efc8484613ebcacf6076a18d02d1e8132b 100644 (file)
@@ -1,3 +1,16 @@
+2005-03-07  Per Bothner  <per@bothner.com>
+
+       Various fixes to allow us to again build if --enable-mapped-location:
+       * c-decl.c (finish_function): Use SET_EXPR_LOCATION instead of
+       unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
+       * tree-cfg.c (remove_bb): If USE_MAPPED_LOCATION, change type of
+       local variable loc. Change logic appropriately.
+       * tree-vect-transform.c (vect_finish_stmt_generation): Use
+       EXPR_LOCATION rather than EXPR_LOCUS if USE_MAPPED_LOCATION.    
+       * c-parser.c (c_parser_for_statement): Initialize loc variable.
+       * tree.h (DECL_IS_BUILTIN): Temporarily revert definition of
+       DECL_IS_BUILTIN in the USE_MAPPED_LOCATION because of jc1 issues.
+
 2005-03-07  Richard Sandiford  <rsandifo@redhat.com>
 
        PR rtl-optimization/19683
index 5cad16ee69fe21688b8e55cc95d7c777620c4ba6..42f8bad4254ab1d64b402c6618135b587c499498 100644 (file)
@@ -6335,7 +6335,11 @@ finish_function (void)
              /* Hack.  We don't want the middle-end to warn that this
                 return is unreachable, so put the statement on the
                 special line 0.  */
+#ifdef USE_MAPPED_LOCATION
+             SET_EXPR_LOCATION (stmt, UNKNOWN_LOCATION);
+#else
              annotate_with_file_line (stmt, input_filename, 0);
+#endif
            }
        }
     }
index e08f436b46e4d9d754f30180754e23c0a64ef405..94874226514c04b87525f10e0e4f5b71cd97f7fc 100644 (file)
@@ -3760,7 +3760,7 @@ static void
 c_parser_for_statement (c_parser *parser)
 {
   tree block, cond, incr, save_break, save_cont, body;
-  location_t loc;
+  location_t loc = UNKNOWN_LOCATION;
   gcc_assert (c_parser_next_token_is_keyword (parser, RID_FOR));
   c_parser_consume_token (parser);
   block = c_begin_compound_stmt (flag_isoc99);
index b87ce54c29179eb2deaee3e9cdb08ad2070316f3..205b5c0e82e7a57019d9184bba51f5a9bf531cde 100644 (file)
@@ -2013,7 +2013,11 @@ static void
 remove_bb (basic_block bb)
 {
   block_stmt_iterator i;
+#ifdef USE_MAPPED_LOCATION
+  source_location loc = UNKNOWN_LOCATION;
+#else
   source_locus loc = 0;
+#endif
 
   if (dump_file)
     {
@@ -2052,15 +2056,15 @@ remove_bb (basic_block bb)
         program that are indeed unreachable.  */
       if (TREE_CODE (stmt) != GOTO_EXPR && EXPR_HAS_LOCATION (stmt) && !loc)
        {
-         source_locus t;
-
 #ifdef USE_MAPPED_LOCATION
-         t = EXPR_LOCATION (stmt);
+         if (EXPR_HAS_LOCATION (stmt))
+           loc = EXPR_LOCATION (stmt);
 #else
+         source_locus t;
          t = EXPR_LOCUS (stmt);
-#endif
          if (t && LOCATION_LINE (*t) > 0)
            loc = t;
+#endif
        }
     }
 
@@ -2068,10 +2072,11 @@ remove_bb (basic_block bb)
      block is unreachable.  We walk statements backwards in the
      loop above, so the last statement we process is the first statement
      in the block.  */
-  if (warn_notreached && loc)
 #ifdef USE_MAPPED_LOCATION
+  if (warn_notreached && loc != UNKNOWN_LOCATION)
     warning ("%Hwill never be executed", &loc);
 #else
+  if (warn_notreached && loc)
     warning ("%Hwill never be executed", loc);
 #endif
 
index 1935a738f71d3465dfe807398c996ddd79609d63..891387a37a2cfa4e4a35165b88ae0af3acba18e6 100644 (file)
@@ -661,7 +661,7 @@ vect_finish_stmt_generation (tree stmt, tree vec_stmt, block_stmt_iterator *bsi)
 #endif
 
 #ifdef USE_MAPPED_LOCATION
-  SET_EXPR_LOCATION (vec_stmt, EXPR_LOCUS (stmt));
+  SET_EXPR_LOCATION (vec_stmt, EXPR_LOCATION (stmt));
 #else
   SET_EXPR_LOCUS (vec_stmt, EXPR_LOCUS (stmt));
 #endif
index acbfc93eaa68f715d6b81a70fde8ee499df82413..34394f13eeb1fd1746eb2ee720302b2e34607c18 100644 (file)
@@ -1952,7 +1952,11 @@ struct tree_binfo GTY (())
 #define DECL_SOURCE_LOCATION(NODE) (DECL_CHECK (NODE)->decl.locus)
 #define DECL_SOURCE_FILE(NODE) LOCATION_FILE (DECL_SOURCE_LOCATION (NODE))
 #define DECL_SOURCE_LINE(NODE) LOCATION_LINE (DECL_SOURCE_LOCATION (NODE))
-#ifdef USE_MAPPED_LOCATION
+#if 0
+/* Should be: #ifdef USE_MAPPED_LOCATION
+   However, there appears to be a jc1 bug that this would expose.
+   (It prevents bookstrapping because dwarf2out tries to emit a
+   non-found class.) FIXME. */
 #define DECL_IS_BUILTIN(DECL) \
   (DECL_SOURCE_LOCATION (DECL) <= BUILTINS_LOCATION)
 #else