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
This commit is contained in:
parent
545eacdb41
commit
2496942a61
@ -1,3 +1,8 @@
|
||||
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>
|
||||
|
||||
* dbxout.c (dbxout_function_decl): Always call dbxout_function_end.
|
||||
|
@ -267,12 +267,38 @@ insn_locators_initialize (void)
|
||||
|
||||
for (insn = get_insns (); insn; insn = next)
|
||||
{
|
||||
int active = 0;
|
||||
|
||||
next = NEXT_INSN (insn);
|
||||
|
||||
if ((active_insn_p (insn)
|
||||
&& GET_CODE (PATTERN (insn)) != ADDR_VEC
|
||||
&& GET_CODE (PATTERN (insn)) != ADDR_DIFF_VEC)
|
||||
|| !NEXT_INSN (insn)
|
||||
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;
|
||||
}
|
||||
}
|
||||
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))
|
||||
{
|
||||
if (last_block != block)
|
||||
@ -296,34 +322,13 @@ insn_locators_initialize (void)
|
||||
VARRAY_PUSH_CHAR_PTR (file_locators_files, (char *) 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
|
||||
|
Loading…
Reference in New Issue
Block a user