diff options
author | Fred Fish <fnf@specifix.com> | 2006-05-11 09:29:52 +0000 |
---|---|---|
committer | Fred Fish <fnf@specifix.com> | 2006-05-11 09:29:52 +0000 |
commit | 576c2025449a61882b04df14736f00017ed72730 (patch) | |
tree | c139a47c0fa5ecf8fa8046524bf276d56e7b1d71 | |
parent | 5e1b4a6d177a61c41377f96b6b19ed2723c8a229 (diff) | |
download | gdb-576c2025449a61882b04df14736f00017ed72730.zip gdb-576c2025449a61882b04df14736f00017ed72730.tar.gz gdb-576c2025449a61882b04df14736f00017ed72730.tar.bz2 |
Reviewed and approved by Jim Blandy <jimb@codesourcery.com>
2006-05-11 Fred Fish <fnf@specifix.com>
* symtab.c (skip_prologue_using_sal): Handle single line functions
like "foo(){}", which may optimize down to a single return inst.
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/symtab.c | 5 |
2 files changed, 10 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index de0ccf2..3f4db56 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2006-05-11 Fred Fish <fnf@specifix.com> + + * symtab.c (skip_prologue_using_sal): Handle single line functions + like "foo(){}", which may optimize down to a single return inst. + 2006-05-10 Steve Ellcey <sje@cup.hp.com> * hppa-hpux-tdep.c (initialize_hp_cxx_exception_support): Remove diff --git a/gdb/symtab.c b/gdb/symtab.c index ad4ed03..2832dd1 100644 --- a/gdb/symtab.c +++ b/gdb/symtab.c @@ -4030,6 +4030,11 @@ skip_prologue_using_sal (CORE_ADDR func_addr) prologue_sal = find_pc_line (start_pc, 0); if (prologue_sal.line != 0) { + /* If there is only one sal that covers the entire function, + then it is probably a single line function, like + "foo(){}". */ + if (prologue_sal.end == end_pc) + return start_pc; while (prologue_sal.end < end_pc) { struct symtab_and_line sal; |