2002-01-15 Daniel Jacobowitz <drow@mvista.com>
authorDaniel Jacobowitz <drow@false.org>
Sun, 20 Jan 2002 19:12:23 +0000 (19:12 +0000)
committerDaniel Jacobowitz <drow@false.org>
Sun, 20 Jan 2002 19:12:23 +0000 (19:12 +0000)
* gdbtypes.h (struct type): Fix whitespace.  Remove obsolete
comment.  Add ``artificial'' to ``union field_location''.

* dwarf2read.c: Remove ad-hoc TYPE_FIELD_ARTIFICIAL.

* buildsym.c (finish_block): Initialize TYPE_FIELD_ARTIFICIAL to 0.
* mdebugread.c (parse_symbol): Likewise.
* stabsread.c (define_symbol): Likewise.
* hp-symtab-read.c (hpread_function_type): Likewise, instead of
initializing TYPE_FIELD_BITPOS to n (obsolete).
(hpread_doc_function_type): Likewise.
* hpread.c (hpread_function_type): Likewise.

gdb/ChangeLog
gdb/buildsym.c
gdb/dwarf2read.c
gdb/gdbtypes.h
gdb/hp-symtab-read.c
gdb/hpread.c
gdb/mdebugread.c
gdb/stabsread.c

index e3f1bb23ea861d48a925a137e67bc4cf14b23028..0fa3015c4d2bed89bff2ab8561cf7a7e0c941e59 100644 (file)
@@ -1,3 +1,18 @@
+2002-01-20  Daniel Jacobowitz  <drow@mvista.com>
+
+       * gdbtypes.h (struct type): Fix whitespace.  Remove obsolete
+       comment.  Add ``artificial'' to ``union field_location''.
+
+       * dwarf2read.c: Remove ad-hoc TYPE_FIELD_ARTIFICIAL.
+
+       * buildsym.c (finish_block): Initialize TYPE_FIELD_ARTIFICIAL to 0.
+       * mdebugread.c (parse_symbol): Likewise.
+       * stabsread.c (define_symbol): Likewise.
+       * hp-symtab-read.c (hpread_function_type): Likewise, instead of
+       initializing TYPE_FIELD_BITPOS to n (obsolete).
+       (hpread_doc_function_type): Likewise.
+       * hpread.c (hpread_function_type): Likewise.
+
 2002-01-20  Andrew Cagney  <ac131313@redhat.com>
 
        * configure.in (host_makefile_frag): Only require a host makefile
index a2c92f2a6fb2ac01c487c91914f3c55b994822c0..abcf22a7cc467d00740d39f39beff9111b138ce5 100644 (file)
@@ -322,6 +322,7 @@ finish_block (struct symbol *symbol, struct pending **listhead,
                    case LOC_BASEREG_ARG:
                    case LOC_LOCAL_ARG:
                      TYPE_FIELD_TYPE (ftype, iparams) = SYMBOL_TYPE (sym);
+                     TYPE_FIELD_ARTIFICIAL (ftype, iparams) = 0;
                      iparams++;
                      break;
                    case LOC_UNDEF:
index 785acc24ca7d38c0e41d4008f6189e2b9eb1a66f..b0b401ee373d36e3b5060456f04249c882462e93 100644 (file)
@@ -474,13 +474,6 @@ struct field_info
     int nfnfields;
   };
 
-/* Dwarf2 has no clean way to discern C++ static and non-static member
-   functions. G++ helps GDB by marking the first parameter for non-static
-   member functions (which is the this pointer) as artificial.
-   We pass this information between dwarf2_add_member_fn and
-   read_subroutine_type via TYPE_FIELD_ARTIFICIAL.  */
-#define TYPE_FIELD_ARTIFICIAL  TYPE_FIELD_BITPOS
-
 /* Various complaints about symbol reading that don't abort the process */
 
 static struct complaint dwarf2_const_ignored =
index 8ceed9d7940714160458e4ab7a62f86ca08a7b5d..3cb561348d319936dc3d4c56250e5e844f9599d7 100644 (file)
@@ -383,17 +383,12 @@ struct type
 
     struct field
       {
-
-
-
        union field_location
          {
            /* Position of this field, counting in bits from start of
               containing structure.
               For BITS_BIG_ENDIAN=1 targets, it is the bit offset to the MSB.
               For BITS_BIG_ENDIAN=0 targets, it is the bit offset to the LSB.
-              For a function type, this is the position in the argument list
-              of this argument.
               For a range bound or enum value, this is the value itself. */
 
            int bitpos;
@@ -404,6 +399,11 @@ struct type
 
            CORE_ADDR physaddr;
            char *physname;
+
+           /* For a function type, this is 1 if the argument is marked
+              artificial.  Artificial arguments should not be shown to the
+              user.  */
+           int artificial;
          }
        loc;
 
@@ -796,6 +796,7 @@ extern void allocate_cplus_struct_type (struct type *);
 #define FIELD_TYPE(thisfld) ((thisfld).type)
 #define FIELD_NAME(thisfld) ((thisfld).name)
 #define FIELD_BITPOS(thisfld) ((thisfld).loc.bitpos)
+#define FIELD_ARTIFICIAL(thisfld) ((thisfld).loc.artificial)
 #define FIELD_BITSIZE(thisfld) ((thisfld).bitsize)
 #define FIELD_PHYSNAME(thisfld) ((thisfld).loc.physname)
 #define FIELD_PHYSADDR(thisfld) ((thisfld).loc.physaddr)
@@ -807,6 +808,7 @@ extern void allocate_cplus_struct_type (struct type *);
 #define TYPE_FIELD_TYPE(thistype, n) FIELD_TYPE(TYPE_FIELD(thistype, n))
 #define TYPE_FIELD_NAME(thistype, n) FIELD_NAME(TYPE_FIELD(thistype, n))
 #define TYPE_FIELD_BITPOS(thistype, n) FIELD_BITPOS(TYPE_FIELD(thistype,n))
+#define TYPE_FIELD_ARTIFICIAL(thistype, n) FIELD_ARTIFICIAL(TYPE_FIELD(thistype,n))
 #define TYPE_FIELD_BITSIZE(thistype, n) FIELD_BITSIZE(TYPE_FIELD(thistype,n))
 #define TYPE_FIELD_PACKED(thistype, n) (FIELD_BITSIZE(TYPE_FIELD(thistype,n))!=0)
 #define TYPE_TEMPLATE_ARG(thistype, n) TYPE_CPLUS_SPECIFIC(thistype)->template_args[n]
index 57665ffff37bd1f8038f4972477f7e144c45493b..15320df45d7d086144e4e88053869f5984298406 100644 (file)
@@ -965,7 +965,7 @@ hpread_read_function_type (dnttpointer hp_type, union dnttentry *dn_bufp,
          struct symbol *xsym = syms->symbol[j];
          TYPE_FIELD_NAME (type, n) = SYMBOL_NAME (xsym);
          TYPE_FIELD_TYPE (type, n) = SYMBOL_TYPE (xsym);
-         TYPE_FIELD_BITPOS (type, n) = n;
+         TYPE_FIELD_ARTIFICIAL (type, n) = 0;
          TYPE_FIELD_BITSIZE (type, n) = 0;
        }
     }
@@ -1138,7 +1138,7 @@ hpread_read_doc_function_type (dnttpointer hp_type, union dnttentry *dn_bufp,
          struct symbol *xsym = syms->symbol[j];
          TYPE_FIELD_NAME (type, n) = SYMBOL_NAME (xsym);
          TYPE_FIELD_TYPE (type, n) = SYMBOL_TYPE (xsym);
-         TYPE_FIELD_BITPOS (type, n) = n;
+         TYPE_FIELD_ARTIFICIAL (type, n) = 0;
          TYPE_FIELD_BITSIZE (type, n) = 0;
        }
     }
index f044ebe824a4099ba375ce53316413bbdb8b31d8..4cbeddda440a87ab4ceb4f3a0e4139494082ad43 100644 (file)
@@ -1371,7 +1371,7 @@ hpread_read_function_type (dnttpointer hp_type, union dnttentry *dn_bufp,
          struct symbol *xsym = syms->symbol[j];
          TYPE_FIELD_NAME (type, n) = SYMBOL_NAME (xsym);
          TYPE_FIELD_TYPE (type, n) = SYMBOL_TYPE (xsym);
-         TYPE_FIELD_BITPOS (type, n) = n;
+         TYPE_FIELD_ARTIFICIAL (type, n) = 0;
          TYPE_FIELD_BITSIZE (type, n) = 0;
        }
       if (syms == osyms)
index 13c0417f134f3c3d074171bccfc3e61c403810c9..7bae479d7f30e256d27ccbf9d7000e4fc063b126 100644 (file)
@@ -1282,6 +1282,7 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
                        case LOC_REGPARM:
                        case LOC_REGPARM_ADDR:
                          TYPE_FIELD_TYPE (ftype, iparams) = SYMBOL_TYPE (sym);
+                         TYPE_FIELD_ARTIFICIAL (ftype, iparams) = 0;
                          iparams++;
                          break;
                        default:
index 45075a62096d8b52b316d278ae7a33e6b37cd40a..62b8bfecb27bb89457be103ffb21807af27f24ef 100644 (file)
@@ -1628,7 +1628,8 @@ define_symbol (CORE_ADDR valu, char *string, int desc, int type,
                 FIXME: Do we need a new builtin_type_promoted_int_arg ?  */
              if (TYPE_CODE (ptype) == TYPE_CODE_VOID)
                ptype = builtin_type_int;
-             TYPE_FIELD_TYPE (ftype, nparams++) = ptype;
+             TYPE_FIELD_TYPE (ftype, nparams) = ptype;
+             TYPE_FIELD_ARTIFICIAL (ftype, nparams++) = 0;
            }
          TYPE_NFIELDS (ftype) = nparams;
          TYPE_FLAGS (ftype) |= TYPE_FLAG_PROTOTYPED;