semantics.c (expand_body): Do tree optimization in the function context, too.
* semantics.c (expand_body): Do tree optimization in the function context, too. From-SVN: r55982
This commit is contained in:
parent
a6be5aeed5
commit
367aa58580
|
@ -1,3 +1,8 @@
|
||||||
|
2002-08-02 Jason Merrill <jason@redhat.com>
|
||||||
|
|
||||||
|
* semantics.c (expand_body): Do tree optimization in the function
|
||||||
|
context, too.
|
||||||
|
|
||||||
2002-08-01 Neil Booth <neil@daikokuya.co.uk>
|
2002-08-01 Neil Booth <neil@daikokuya.co.uk>
|
||||||
|
|
||||||
* cp-tree.h: Move all warning and flag declarations to c-common.h.
|
* cp-tree.h: Move all warning and flag declarations to c-common.h.
|
||||||
|
|
|
@ -2326,6 +2326,7 @@ expand_body (fn)
|
||||||
{
|
{
|
||||||
int saved_lineno;
|
int saved_lineno;
|
||||||
const char *saved_input_filename;
|
const char *saved_input_filename;
|
||||||
|
tree saved_function;
|
||||||
|
|
||||||
/* When the parser calls us after finishing the body of a template
|
/* When the parser calls us after finishing the body of a template
|
||||||
function, we don't really want to expand the body. When we're
|
function, we don't really want to expand the body. When we're
|
||||||
|
@ -2403,6 +2404,16 @@ expand_body (fn)
|
||||||
if (DECL_EXTERNAL (fn))
|
if (DECL_EXTERNAL (fn))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
/* Save the current file name and line number. When we expand the
|
||||||
|
body of the function, we'll set LINENO and INPUT_FILENAME so that
|
||||||
|
error-mesages come out in the right places. */
|
||||||
|
saved_lineno = lineno;
|
||||||
|
saved_input_filename = input_filename;
|
||||||
|
saved_function = current_function_decl;
|
||||||
|
lineno = DECL_SOURCE_LINE (fn);
|
||||||
|
input_filename = DECL_SOURCE_FILE (fn);
|
||||||
|
current_function_decl = fn;
|
||||||
|
|
||||||
timevar_push (TV_INTEGRATION);
|
timevar_push (TV_INTEGRATION);
|
||||||
|
|
||||||
/* Optimize the body of the function before expanding it. */
|
/* Optimize the body of the function before expanding it. */
|
||||||
|
@ -2411,14 +2422,6 @@ expand_body (fn)
|
||||||
timevar_pop (TV_INTEGRATION);
|
timevar_pop (TV_INTEGRATION);
|
||||||
timevar_push (TV_EXPAND);
|
timevar_push (TV_EXPAND);
|
||||||
|
|
||||||
/* Save the current file name and line number. When we expand the
|
|
||||||
body of the function, we'll set LINENO and INPUT_FILENAME so that
|
|
||||||
error-mesages come out in the right places. */
|
|
||||||
saved_lineno = lineno;
|
|
||||||
saved_input_filename = input_filename;
|
|
||||||
lineno = DECL_SOURCE_LINE (fn);
|
|
||||||
input_filename = DECL_SOURCE_FILE (fn);
|
|
||||||
|
|
||||||
genrtl_start_function (fn);
|
genrtl_start_function (fn);
|
||||||
current_function_is_thunk = DECL_THUNK_P (fn);
|
current_function_is_thunk = DECL_THUNK_P (fn);
|
||||||
|
|
||||||
|
@ -2450,6 +2453,7 @@ expand_body (fn)
|
||||||
DECL_SAVED_TREE (fn) = NULL_TREE;
|
DECL_SAVED_TREE (fn) = NULL_TREE;
|
||||||
|
|
||||||
/* And restore the current source position. */
|
/* And restore the current source position. */
|
||||||
|
current_function_decl = saved_function;
|
||||||
lineno = saved_lineno;
|
lineno = saved_lineno;
|
||||||
input_filename = saved_input_filename;
|
input_filename = saved_input_filename;
|
||||||
extract_interface_info ();
|
extract_interface_info ();
|
||||||
|
|
Loading…
Reference in New Issue