Reviewed and approved by Jim Blandy <jimb@codesourcery.com>
authorFred Fish <fnf@specifix.com>
Thu, 11 May 2006 09:29:52 +0000 (09:29 +0000)
committerFred Fish <fnf@specifix.com>
Thu, 11 May 2006 09:29:52 +0000 (09:29 +0000)
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.

gdb/ChangeLog
gdb/symtab.c

index de0ccf23dffe4e38e9b8ae3f422122a826be16f0..3f4db564b6a63381d4503b7832a6a764b1a72cf6 100644 (file)
@@ -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
index ad4ed038cc1aa7579608552f48ed6d099c06282a..2832dd15fdb0ea4e73f87d5e524225eeb0e7e0cd 100644 (file)
@@ -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;