* symtab.c (decode_line_1, decode_line_2): Do not adjust pc by
authorPeter Schauer <Peter.Schauer@mytum.de>
Mon, 8 Nov 1993 07:51:23 +0000 (07:51 +0000)
committerPeter Schauer <Peter.Schauer@mytum.de>
Mon, 8 Nov 1993 07:51:23 +0000 (07:51 +0000)
FUNCTION_START_OFFSET if funfirstline is not set.

gdb/ChangeLog
gdb/symtab.c

index d346183859d316595c8ce2c45ac4e068aac21d63..06239ba4af683c850beaa3cef38f3c774a885591 100644 (file)
@@ -1,3 +1,8 @@
+Sun Nov  7 23:49:21 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
+
+       * symtab.c (decode_line_1, decode_line_2):  Do not adjust pc by
+       FUNCTION_START_OFFSET if funfirstline is not set.
+
 Fri Nov  5 17:19:30 1993  Kung Hsu  (kung@cirdan.cygnus.com)
 
        * gdbtypes.h : add a field 'ignore_field_bits in cplus_specific,
index ae9111856c2503938946349966dd74d2190e2164..582ca04696b5490ee220c52e710e9a581d182fad 100644 (file)
@@ -1830,9 +1830,12 @@ decode_line_1 (argptr, funfirstline, default_symtab, default_line, canonical)
                  if (sym && SYMBOL_CLASS (sym) == LOC_BLOCK)
                    {
                      /* Arg is the name of a function */
-                     pc = BLOCK_START (SYMBOL_BLOCK_VALUE (sym)) + FUNCTION_START_OFFSET;
+                     pc = BLOCK_START (SYMBOL_BLOCK_VALUE (sym));
                      if (funfirstline)
-                       SKIP_PROLOGUE (pc);
+                       {
+                         pc += FUNCTION_START_OFFSET;
+                         SKIP_PROLOGUE (pc);
+                       }
                      values.sals = (struct symtab_and_line *)xmalloc (sizeof (struct symtab_and_line));
                      values.nelts = 1;
                      values.sals[0] = find_pc_line (pc, 0);
@@ -2006,9 +2009,12 @@ decode_line_1 (argptr, funfirstline, default_symtab, default_line, canonical)
       if (SYMBOL_CLASS (sym) == LOC_BLOCK)
        {
          /* Arg is the name of a function */
-         pc = BLOCK_START (SYMBOL_BLOCK_VALUE (sym)) + FUNCTION_START_OFFSET;
+         pc = BLOCK_START (SYMBOL_BLOCK_VALUE (sym));
          if (funfirstline)
-           SKIP_PROLOGUE (pc);
+           {
+             pc += FUNCTION_START_OFFSET;
+             SKIP_PROLOGUE (pc);
+           }
          val = find_pc_line (pc, 0);
 #ifdef PROLOGUE_FIRSTLINE_OVERLAP
          /* Convex: no need to suppress code on first line, if any */
@@ -2070,9 +2076,12 @@ decode_line_1 (argptr, funfirstline, default_symtab, default_line, canonical)
     {
       val.symtab = 0;
       val.line = 0;
-      val.pc = SYMBOL_VALUE_ADDRESS (msymbol) + FUNCTION_START_OFFSET;
+      val.pc = SYMBOL_VALUE_ADDRESS (msymbol);
       if (funfirstline)
-       SKIP_PROLOGUE (val.pc);
+       {
+         val.pc += FUNCTION_START_OFFSET;
+         SKIP_PROLOGUE (val.pc);
+       }
       values.sals = (struct symtab_and_line *)xmalloc (sizeof (struct symtab_and_line));
       values.sals[0] = val;
       values.nelts = 1;
@@ -2143,10 +2152,12 @@ decode_line_2 (sym_arr, nelts, funfirstline, canonical)
       if (sym_arr[i] && SYMBOL_CLASS (sym_arr[i]) == LOC_BLOCK)
        {
          /* Arg is the name of a function */
-         pc = BLOCK_START (SYMBOL_BLOCK_VALUE (sym_arr[i])) 
-              + FUNCTION_START_OFFSET;
+         pc = BLOCK_START (SYMBOL_BLOCK_VALUE (sym_arr[i]));
          if (funfirstline)
-           SKIP_PROLOGUE (pc);
+           {
+             pc += FUNCTION_START_OFFSET;
+             SKIP_PROLOGUE (pc);
+           }
          values.sals[i] = find_pc_line (pc, 0);
          values.sals[i].pc = (values.sals[i].end && values.sals[i].pc != pc) ?
                               values.sals[i].end                      :  pc;