aboutsummaryrefslogtreecommitdiff
path: root/gdb/blockframe.c
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@gnu.org>2003-05-23 16:59:13 +0000
committerMark Kettenis <kettenis@gnu.org>2003-05-23 16:59:13 +0000
commit2cdd89cb84a47bf6149b88a65d3b6ffac6954409 (patch)
treeb06bc469970bca3c8923efd02ca3abd4a84d5109 /gdb/blockframe.c
parent182d43bc6e1189a59266098815d5793349497699 (diff)
downloadgdb-2cdd89cb84a47bf6149b88a65d3b6ffac6954409.zip
gdb-2cdd89cb84a47bf6149b88a65d3b6ffac6954409.tar.gz
gdb-2cdd89cb84a47bf6149b88a65d3b6ffac6954409.tar.bz2
* blockframe.c (get_pc_function_start): Rewrite to avoid
asignments in if-statements.
Diffstat (limited to 'gdb/blockframe.c')
-rw-r--r--gdb/blockframe.c37
1 files changed, 20 insertions, 17 deletions
diff --git a/gdb/blockframe.c b/gdb/blockframe.c
index 3c71376..1027a46 100644
--- a/gdb/blockframe.c
+++ b/gdb/blockframe.c
@@ -223,28 +223,31 @@ get_frame_block (struct frame_info *frame, CORE_ADDR *addr_in_block)
CORE_ADDR
get_pc_function_start (CORE_ADDR pc)
{
- register struct block *bl;
- register struct symbol *symbol;
- register struct minimal_symbol *msymbol;
- CORE_ADDR fstart;
+ struct block *bl;
+ struct minimal_symbol *msymbol;
- if ((bl = block_for_pc (pc)) != NULL &&
- (symbol = block_function (bl)) != NULL)
- {
- bl = SYMBOL_BLOCK_VALUE (symbol);
- fstart = BLOCK_START (bl);
- }
- else if ((msymbol = lookup_minimal_symbol_by_pc (pc)) != NULL)
+ bl = block_for_pc (pc);
+ if (bl)
{
- fstart = SYMBOL_VALUE_ADDRESS (msymbol);
- if (!find_pc_section (fstart))
- return 0;
+ struct symbol *symbol = block_function (bl);
+
+ if (symbol)
+ {
+ bl = SYMBOL_BLOCK_VALUE (symbol);
+ return BLOCK_START (bl);
+ }
}
- else
+
+ msymbol = lookup_minimal_symbol_by_pc (pc);
+ if (msymbol)
{
- fstart = 0;
+ CORE_ADDR fstart = SYMBOL_VALUE_ADDRESS (msymbol);
+
+ if (find_pc_section (fstart))
+ return fstart;
}
- return (fstart);
+
+ return 0;
}
/* Return the symbol for the function executing in frame FRAME. */