From: bothner Date: Mon, 7 Mar 2005 21:14:12 +0000 (+0000) Subject: Various fixes to allow us to again build if --enable-mapped-location: X-Git-Tag: upstream/4.9.2~63241 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=47e69468f19a280502935718ecdfba033426de2e;p=platform%2Fupstream%2Flinaro-gcc.git 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@96045 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 86bc853..dc3a09e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,16 @@ +2005-03-07 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. + 2005-03-07 Richard Sandiford PR rtl-optimization/19683 diff --git a/gcc/c-decl.c b/gcc/c-decl.c index 5cad16e..42f8bad 100644 --- a/gcc/c-decl.c +++ b/gcc/c-decl.c @@ -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 } } } diff --git a/gcc/c-parser.c b/gcc/c-parser.c index e08f436..9487422 100644 --- a/gcc/c-parser.c +++ b/gcc/c-parser.c @@ -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); diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c index b87ce54..205b5c0 100644 --- a/gcc/tree-cfg.c +++ b/gcc/tree-cfg.c @@ -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 diff --git a/gcc/tree-vect-transform.c b/gcc/tree-vect-transform.c index 1935a73..891387a 100644 --- a/gcc/tree-vect-transform.c +++ b/gcc/tree-vect-transform.c @@ -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 diff --git a/gcc/tree.h b/gcc/tree.h index acbfc93..34394f1 100644 --- a/gcc/tree.h +++ b/gcc/tree.h @@ -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