* dwarf2read.c (new_symbol): Use var_decode_location for parameters.
authorDaniel Jacobowitz <drow@false.org>
Thu, 31 Jul 2003 21:05:38 +0000 (21:05 +0000)
committerDaniel Jacobowitz <drow@false.org>
Thu, 31 Jul 2003 21:05:38 +0000 (21:05 +0000)
gdb/ChangeLog
gdb/dwarf2read.c

index 69c2d6b827c399edf0f81669a59179c24b203693..6e77d9cb2cf40e0469e6c9c3444bf161edc36c06 100644 (file)
@@ -1,3 +1,7 @@
+2003-07-31  Daniel Jacobowitz  <drow@mvista.com>
+
+       * dwarf2read.c (new_symbol): Use var_decode_location for parameters.
+
 2003-07-30  Michael Snyder  <msnyder@redhat.com>
 
        * structs.h (value_being_returned): Add a struct_addr argument.
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)