Commit dbce1570 by Per Bothner Committed by Per Bothner

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.

From-SVN: r96045
parent a2da2c9a
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> 2005-03-07 Richard Sandiford <rsandifo@redhat.com>
PR rtl-optimization/19683 PR rtl-optimization/19683
......
...@@ -6335,7 +6335,11 @@ finish_function (void) ...@@ -6335,7 +6335,11 @@ finish_function (void)
/* Hack. We don't want the middle-end to warn that this /* Hack. We don't want the middle-end to warn that this
return is unreachable, so put the statement on the return is unreachable, so put the statement on the
special line 0. */ special line 0. */
#ifdef USE_MAPPED_LOCATION
SET_EXPR_LOCATION (stmt, UNKNOWN_LOCATION);
#else
annotate_with_file_line (stmt, input_filename, 0); annotate_with_file_line (stmt, input_filename, 0);
#endif
} }
} }
} }
......
...@@ -3760,7 +3760,7 @@ static void ...@@ -3760,7 +3760,7 @@ static void
c_parser_for_statement (c_parser *parser) c_parser_for_statement (c_parser *parser)
{ {
tree block, cond, incr, save_break, save_cont, body; 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)); gcc_assert (c_parser_next_token_is_keyword (parser, RID_FOR));
c_parser_consume_token (parser); c_parser_consume_token (parser);
block = c_begin_compound_stmt (flag_isoc99); block = c_begin_compound_stmt (flag_isoc99);
......
...@@ -2013,7 +2013,11 @@ static void ...@@ -2013,7 +2013,11 @@ static void
remove_bb (basic_block bb) remove_bb (basic_block bb)
{ {
block_stmt_iterator i; block_stmt_iterator i;
#ifdef USE_MAPPED_LOCATION
source_location loc = UNKNOWN_LOCATION;
#else
source_locus loc = 0; source_locus loc = 0;
#endif
if (dump_file) if (dump_file)
{ {
...@@ -2052,15 +2056,15 @@ remove_bb (basic_block bb) ...@@ -2052,15 +2056,15 @@ remove_bb (basic_block bb)
program that are indeed unreachable. */ program that are indeed unreachable. */
if (TREE_CODE (stmt) != GOTO_EXPR && EXPR_HAS_LOCATION (stmt) && !loc) if (TREE_CODE (stmt) != GOTO_EXPR && EXPR_HAS_LOCATION (stmt) && !loc)
{ {
source_locus t;
#ifdef USE_MAPPED_LOCATION #ifdef USE_MAPPED_LOCATION
t = EXPR_LOCATION (stmt); if (EXPR_HAS_LOCATION (stmt))
loc = EXPR_LOCATION (stmt);
#else #else
source_locus t;
t = EXPR_LOCUS (stmt); t = EXPR_LOCUS (stmt);
#endif
if (t && LOCATION_LINE (*t) > 0) if (t && LOCATION_LINE (*t) > 0)
loc = t; loc = t;
#endif
} }
} }
...@@ -2068,10 +2072,11 @@ remove_bb (basic_block bb) ...@@ -2068,10 +2072,11 @@ remove_bb (basic_block bb)
block is unreachable. We walk statements backwards in the block is unreachable. We walk statements backwards in the
loop above, so the last statement we process is the first statement loop above, so the last statement we process is the first statement
in the block. */ in the block. */
if (warn_notreached && loc)
#ifdef USE_MAPPED_LOCATION #ifdef USE_MAPPED_LOCATION
if (warn_notreached && loc != UNKNOWN_LOCATION)
warning ("%Hwill never be executed", &loc); warning ("%Hwill never be executed", &loc);
#else #else
if (warn_notreached && loc)
warning ("%Hwill never be executed", loc); warning ("%Hwill never be executed", loc);
#endif #endif
......
...@@ -661,7 +661,7 @@ vect_finish_stmt_generation (tree stmt, tree vec_stmt, block_stmt_iterator *bsi) ...@@ -661,7 +661,7 @@ vect_finish_stmt_generation (tree stmt, tree vec_stmt, block_stmt_iterator *bsi)
#endif #endif
#ifdef USE_MAPPED_LOCATION #ifdef USE_MAPPED_LOCATION
SET_EXPR_LOCATION (vec_stmt, EXPR_LOCUS (stmt)); SET_EXPR_LOCATION (vec_stmt, EXPR_LOCATION (stmt));
#else #else
SET_EXPR_LOCUS (vec_stmt, EXPR_LOCUS (stmt)); SET_EXPR_LOCUS (vec_stmt, EXPR_LOCUS (stmt));
#endif #endif
......
...@@ -1952,7 +1952,11 @@ struct tree_binfo GTY (()) ...@@ -1952,7 +1952,11 @@ struct tree_binfo GTY (())
#define DECL_SOURCE_LOCATION(NODE) (DECL_CHECK (NODE)->decl.locus) #define DECL_SOURCE_LOCATION(NODE) (DECL_CHECK (NODE)->decl.locus)
#define DECL_SOURCE_FILE(NODE) LOCATION_FILE (DECL_SOURCE_LOCATION (NODE)) #define DECL_SOURCE_FILE(NODE) LOCATION_FILE (DECL_SOURCE_LOCATION (NODE))
#define DECL_SOURCE_LINE(NODE) LOCATION_LINE (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) \ #define DECL_IS_BUILTIN(DECL) \
(DECL_SOURCE_LOCATION (DECL) <= BUILTINS_LOCATION) (DECL_SOURCE_LOCATION (DECL) <= BUILTINS_LOCATION)
#else #else
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment