Commit 5679f678 by Mark Mitchell Committed by Mark Mitchell

optimize.c (expand_call_inline): Wrap the expanded call in an…

optimize.c (expand_call_inline): Wrap the expanded call in an EXPR_WITH_FILE_LOCATION node to get correct line...

	* optimize.c (expand_call_inline): Wrap the expanded call in an
	EXPR_WITH_FILE_LOCATION node to get correct line numbers for
	inlined functions.

From-SVN: r30784
parent 86fff623
1999-12-04 Mark Mitchell <mark@codesourcery.com> 1999-12-04 Mark Mitchell <mark@codesourcery.com>
* optimize.c (expand_call_inline): Wrap the expanded call in an
EXPR_WITH_FILE_LOCATION node to get correct line numbers for
inlined functions.
* optimize.c (inline_data): Remove fns_top. Add scope_stmt. Add * optimize.c (inline_data): Remove fns_top. Add scope_stmt. Add
in_target_cleanup_p. in_target_cleanup_p.
(remap_decl): New function. (remap_decl): New function.
......
...@@ -641,15 +641,20 @@ expand_call_inline (tp, walk_subtrees, data) ...@@ -641,15 +641,20 @@ expand_call_inline (tp, walk_subtrees, data)
/* The new expression has side-effects if the old one did. */ /* The new expression has side-effects if the old one did. */
TREE_SIDE_EFFECTS (expr) = TREE_SIDE_EFFECTS (t); TREE_SIDE_EFFECTS (expr) = TREE_SIDE_EFFECTS (t);
/* Replace the call by the inlined body. Wrap it in an
EXPR_WITH_FILE_LOCATION so that we'll get debugging line notes
pointing to the right place. */
chain = TREE_CHAIN (*tp);
*tp = build_expr_wfl (expr, DECL_SOURCE_FILE (fn), DECL_SOURCE_LINE (fn),
/*col=*/0);
EXPR_WFL_EMIT_LINE_NOTE (*tp) = 1;
TREE_CHAIN (*tp) = chain;
/* If the value of the new expression is ignored, that's OK. We /* If the value of the new expression is ignored, that's OK. We
don't warn about this for CALL_EXPRs, so we shouldn't warn about don't warn about this for CALL_EXPRs, so we shouldn't warn about
the equivalent inlined version either. */ the equivalent inlined version either. */
TREE_USED (expr) = 1; TREE_USED (*tp) = 1;
/* Replace the call by the inlined body. */
chain = TREE_CHAIN (*tp);
*tp = expr;
TREE_CHAIN (expr) = chain;
/* Recurse into the body of the just inlined function. */ /* Recurse into the body of the just inlined function. */
expand_calls_inline (tp, id); expand_calls_inline (tp, id);
......
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