Commit 2496942a by Nathan Sidwell Committed by Nathan Sidwell

cfglayout.c (insn_locators_initialize): Update the current location before initializing a location.

	* cfglayout.c (insn_locators_initialize): Update the current
	location before initializing a location.

From-SVN: r85554
parent 545eacdb
2004-08-04 Nathan Sidwell <nathan@codesourcery.com>
* cfglayout.c (insn_locators_initialize): Update the current
location before initializing a location.
2004-08-03 Zack Weinberg <zack@codesourcery.com> 2004-08-03 Zack Weinberg <zack@codesourcery.com>
* dbxout.c (dbxout_function_decl): Always call dbxout_function_end. * dbxout.c (dbxout_function_decl): Always call dbxout_function_end.
......
...@@ -267,12 +267,38 @@ insn_locators_initialize (void) ...@@ -267,12 +267,38 @@ insn_locators_initialize (void)
for (insn = get_insns (); insn; insn = next) for (insn = get_insns (); insn; insn = next)
{ {
int active = 0;
next = NEXT_INSN (insn); next = NEXT_INSN (insn);
if ((active_insn_p (insn) if (NOTE_P (insn))
&& GET_CODE (PATTERN (insn)) != ADDR_VEC {
&& GET_CODE (PATTERN (insn)) != ADDR_DIFF_VEC) switch (NOTE_LINE_NUMBER (insn))
|| !NEXT_INSN (insn) {
case NOTE_INSN_BLOCK_BEG:
case NOTE_INSN_BLOCK_END:
abort ();
default:
if (NOTE_LINE_NUMBER (insn) > 0)
{
expanded_location xloc;
NOTE_EXPANDED_LOCATION (xloc, insn);
line_number = xloc.line;
file_name = xloc.file;
}
break;
}
}
else
active = (active_insn_p (insn)
&& GET_CODE (PATTERN (insn)) != ADDR_VEC
&& GET_CODE (PATTERN (insn)) != ADDR_DIFF_VEC);
check_block_change (insn, &block);
if (active
|| !next
|| (!prologue_locator && file_name)) || (!prologue_locator && file_name))
{ {
if (last_block != block) if (last_block != block)
...@@ -296,34 +322,13 @@ insn_locators_initialize (void) ...@@ -296,34 +322,13 @@ insn_locators_initialize (void)
VARRAY_PUSH_CHAR_PTR (file_locators_files, (char *) file_name); VARRAY_PUSH_CHAR_PTR (file_locators_files, (char *) file_name);
last_file_name = file_name; last_file_name = file_name;
} }
if (!prologue_locator && file_name)
prologue_locator = loc;
if (!next)
epilogue_locator = loc;
if (active)
INSN_LOCATOR (insn) = loc;
} }
if (!prologue_locator && file_name)
prologue_locator = loc;
if (!NEXT_INSN (insn))
epilogue_locator = loc;
if (active_insn_p (insn))
INSN_LOCATOR (insn) = loc;
else if (NOTE_P (insn))
{
switch (NOTE_LINE_NUMBER (insn))
{
case NOTE_INSN_BLOCK_BEG:
case NOTE_INSN_BLOCK_END:
abort ();
default:
if (NOTE_LINE_NUMBER (insn) > 0)
{
expanded_location xloc;
NOTE_EXPANDED_LOCATION (xloc, insn);
line_number = xloc.line;
file_name = xloc.file;
}
break;
}
}
check_block_change (insn, &block);
} }
/* Tag the blocks with a depth number so that change_scope can find /* Tag the blocks with a depth number so that change_scope can find
......
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