aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog9
-rw-r--r--gdb/ch-typeprint.c2
-rw-r--r--gdb/ch-valprint.c6
-rw-r--r--gdb/gdbtypes.h1
-rw-r--r--gdb/stabsread.c5
5 files changed, 14 insertions, 9 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index dc9f97e..d3e3b0c 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,12 @@
+Fri Sep 16 16:06:08 1994 Per Bothner (bothner@kalessin.cygnus.com)
+
+ * gdbtypes.h (TYPE_INDEX_TYPE): New macro.
+ * ch-typeprint.c, ch-valprint.c: Use TYPE_INDEX_TYPE.
+ * ch-valprint.c (chill_val_print): Pass index type directly
+ (instead of its TYPE_TARGET_TYPE) to print_type_scalar.
+ * stabsread.c (read_type): Don't set TYPE_FLAG_TARGET_STUB
+ if the index type is a stub.
+
Fri Sep 16 17:18:44 1994 Stan Shebs (shebs@andros.cygnus.com)
* config/i386/{i386aix.mh, i386bsd.mh, i386lynx.mh, i386sco.mh,
diff --git a/gdb/ch-typeprint.c b/gdb/ch-typeprint.c
index 3311e1f..41a7d6f 100644
--- a/gdb/ch-typeprint.c
+++ b/gdb/ch-typeprint.c
@@ -141,7 +141,7 @@ chill_type_print_base (type, stream, show, level)
case TYPE_CODE_SET:
fputs_filtered ("POWERSET ", stream);
- chill_print_type (TYPE_FIELD_TYPE (type, 0), "", stream,
+ chill_print_type (TYPE_INDEX_TYPE (type), "", stream,
show - 1, level);
break;
diff --git a/gdb/ch-valprint.c b/gdb/ch-valprint.c
index 00f5565..11d1a22 100644
--- a/gdb/ch-valprint.c
+++ b/gdb/ch-valprint.c
@@ -294,7 +294,7 @@ chill_val_print (type, valaddr, address, stream, format, deref_ref, recurse,
case TYPE_CODE_BITSTRING:
case TYPE_CODE_SET:
- elttype = TYPE_FIELD_TYPE (type, 0);
+ elttype = TYPE_INDEX_TYPE (type);
check_stub_type (elttype);
if (TYPE_FLAGS (elttype) & TYPE_FLAG_STUB)
{
@@ -323,7 +323,7 @@ chill_val_print (type, valaddr, address, stream, format, deref_ref, recurse,
{
if (need_comma)
fputs_filtered (", ", stream);
- print_type_scalar (TYPE_TARGET_TYPE (range), i, stream);
+ print_type_scalar (range, i, stream);
need_comma = 1;
/* Look for a continuous range of true elements. */
@@ -334,7 +334,7 @@ chill_val_print (type, valaddr, address, stream, format, deref_ref, recurse,
while (i+1 <= high_bound
&& value_bit_index (type, valaddr, ++i))
j = i;
- print_type_scalar (TYPE_TARGET_TYPE (range), j, stream);
+ print_type_scalar (range, j, stream);
}
}
}
diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h
index a1fc185..278a220 100644
--- a/gdb/gdbtypes.h
+++ b/gdb/gdbtypes.h
@@ -494,6 +494,7 @@ allocate_cplus_struct_type PARAMS ((struct type *));
#define TYPE_NFIELDS(thistype) (thistype)->nfields
#define TYPE_FIELDS(thistype) (thistype)->fields
+#define TYPE_INDEX_TYPE(type) TYPE_FIELD_TYPE (type, 0)
#define TYPE_LOW_BOUND(range_type) TYPE_FIELD_BITPOS (range_type, 0)
#define TYPE_HIGH_BOUND(range_type) TYPE_FIELD_BITPOS (range_type, 1)
/* If TYPE_DUMMY_RANGE is true for a range type, it was allocated
diff --git a/gdb/stabsread.c b/gdb/stabsread.c
index 49d36ac..5b5fee5 100644
--- a/gdb/stabsread.c
+++ b/gdb/stabsread.c
@@ -1719,11 +1719,6 @@ read_type (pp, objfile)
case 'S':
type1 = read_type (pp, objfile);
type = create_set_type ((struct type*) NULL, type1);
- if (TYPE_FLAGS (type1) & TYPE_FLAG_STUB)
- {
- TYPE_FLAGS (type) |= TYPE_FLAG_TARGET_STUB;
- add_undefined_type (type);
- }
if (is_string)
TYPE_CODE (type) = TYPE_CODE_BITSTRING;
if (typenums[0] != -1)