aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFred Fish <fnf@specifix.com>2006-05-11 09:29:52 +0000
committerFred Fish <fnf@specifix.com>2006-05-11 09:29:52 +0000
commit576c2025449a61882b04df14736f00017ed72730 (patch)
treec139a47c0fa5ecf8fa8046524bf276d56e7b1d71
parent5e1b4a6d177a61c41377f96b6b19ed2723c8a229 (diff)
downloadgdb-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/ChangeLog5
-rw-r--r--gdb/symtab.c5
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;