]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Merge from mainline:
authorDaniel Jacobowitz <drow@false.org>
Thu, 9 Oct 2003 14:26:14 +0000 (14:26 +0000)
committerDaniel Jacobowitz <drow@false.org>
Thu, 9 Oct 2003 14:26:14 +0000 (14:26 +0000)
2003-07-31  Daniel Jacobowitz  <drow@mvista.com>

* dwarf2read.c (new_symbol): Use var_decode_location for parameters.

gdb/ChangeLog
gdb/dwarf2read.c

index 1d3d60b1aada1b02ebd4792bbccf2431c0d94b1f..a52f1b4df30eede50d28a23fcf9778c3c42b949d 100644 (file)
@@ -1,3 +1,10 @@
+2003-10-09  Daniel Jacobowitz  <drow@mvista.com>
+
+       Merge from mainline:
+       2003-07-31  Daniel Jacobowitz  <drow@mvista.com>
+
+       * dwarf2read.c (new_symbol): Use var_decode_location for parameters.
+
 2003-10-09  Daniel Jacobowitz  <drow@mvista.com>
 
        * dwarf2expr.c (execute_stack_op): Don't treat the frame base as
index 115d8db96458c509fdceab0c70ca96daa29b5801..da31c60642c70e8ebd8effdb78fc5d663f9d65aa 100644 (file)
@@ -5207,32 +5207,10 @@ new_symbol (struct die_info *die, struct type *type, struct objfile *objfile,
          attr = dwarf_attr (die, DW_AT_location);
          if (attr)
            {
-             SYMBOL_VALUE (sym) =
-               decode_locdesc (DW_BLOCK (attr), objfile, cu_header);
-             if (isreg)
-               {
-                 SYMBOL_CLASS (sym) = LOC_REGPARM;
-                 SYMBOL_VALUE (sym) = 
-                   DWARF2_REG_TO_REGNUM (SYMBOL_VALUE (sym));
-               }
-             else if (offreg)
-               {
-                 if (isderef)
-                   {
-                     if (basereg != frame_base_reg)
-                       dwarf2_complex_location_expr_complaint ();
-                     SYMBOL_CLASS (sym) = LOC_REF_ARG;
-                   }
-                 else
-                   {
-                     SYMBOL_CLASS (sym) = LOC_BASEREG_ARG;
-                     SYMBOL_BASEREG (sym) = DWARF2_REG_TO_REGNUM (basereg);
-                   }
-               }
-             else
-               {
-                 SYMBOL_CLASS (sym) = LOC_ARG;
-               }
+             var_decode_location (attr, sym, objfile, cu_header);
+             /* FIXME drow/2003-07-31: Is LOC_COMPUTED_ARG necessary?  */
+             if (SYMBOL_CLASS (sym) == LOC_COMPUTED)
+               SYMBOL_CLASS (sym) = LOC_COMPUTED_ARG;
            }
          attr = dwarf_attr (die, DW_AT_const_value);
          if (attr)