(read_one_struct_field): Support boolean bitfields.
* c-valprint.c (c_val_print): Print booleans properly.
+Tue Jan 23 18:02:35 1996 Per Bothner <bothner@kalessin.cygnus.com>
+
+ * stabsread.c (rs6000_builtin_type): Make bool type unsigned.
+ (read_one_struct_field): Support boolean bitfields.
+ * c-valprint.c (c_val_print): Print booleans properly.
+
Tue Jan 23 18:54:09 1996 Stan Shebs <shebs@andros.cygnus.com>
* remote-vxsparc.c (vx_convert_to_virtual, vx_convert_from_virtual):
break;
case TYPE_CODE_BOOL:
- /* Do something at least vaguely reasonable, for example if the
- language is set wrong. */
+ format = format ? format : output_format;
+ if (format)
+ print_scalar_formatted (valaddr, type, format, 0, stream);
+ else
+ {
+ val = unpack_long (type, valaddr);
+ if (val == 0)
+ fputs_filtered ("false", stream);
+ else if (val == 1)
+ fputs_filtered ("true", stream);
+ else
+ print_longest (stream, 'd', 0, val);
+ }
+ break;
case TYPE_CODE_RANGE:
/* FIXME: create_range_type does not set the unsigned bit in a
rettype = init_type (TYPE_CODE_INT, 4, 0, "integer", NULL);
break;
case 16:
- rettype = init_type (TYPE_CODE_BOOL, 4, 0, "boolean", NULL);
+ rettype = init_type (TYPE_CODE_BOOL, 4, TYPE_FLAG_UNSIGNED,
+ "boolean", NULL);
break;
case 17:
rettype = init_type (TYPE_CODE_FLT, 4, 0, "short real", NULL);
and treat enums as if they had the width of ints. */
if (TYPE_CODE (fip -> list -> field.type) != TYPE_CODE_INT
+ && TYPE_CODE (fip -> list -> field.type) != TYPE_CODE_BOOL
&& TYPE_CODE (fip -> list -> field.type) != TYPE_CODE_ENUM)
{
fip -> list -> field.bitsize = 0;