From: Per Bothner Date: Thu, 26 Mar 1992 08:33:43 +0000 (+0000) Subject: * c-exp.y, gdbtypes.h: Add builtin_type_signed_char. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=04f27ddc6da0958519761c5fcb778beedad8871c;p=binutils-gdb.git * c-exp.y, gdbtypes.h: Add builtin_type_signed_char. * cplus-dem.c: Support "Sc" meaning "signed char". --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index e00ae64b143..bdc69e80cad 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +Wed Mar 25 16:52:35 1992 Per Bothner (bothner@cygnus.com) + + * c-exp.y, gdbtypes.h: Add builtin_type_signed_char. + * cplus-dem.c: Support "Sc" meaning "signed char". + Wed Mar 25 15:21:44 1992 Stu Grossman (grossman at cygnus.com) * configure.in: fix iris/iris3. diff --git a/gdb/c-exp.y b/gdb/c-exp.y index bbf66e00c84..7183fe7b44c 100644 --- a/gdb/c-exp.y +++ b/gdb/c-exp.y @@ -1495,6 +1495,7 @@ struct type *builtin_type_short; struct type *builtin_type_int; struct type *builtin_type_long; struct type *builtin_type_long_long; +struct type *builtin_type_signed_char; struct type *builtin_type_unsigned_char; struct type *builtin_type_unsigned_short; struct type *builtin_type_unsigned_int; @@ -1516,6 +1517,7 @@ struct type ** const (c_builtin_types[]) = &builtin_type_double, &builtin_type_void, &builtin_type_long_long, + &builtin_type_signed_char, &builtin_type_unsigned_char, &builtin_type_unsigned_short, &builtin_type_unsigned_int, @@ -1572,6 +1574,10 @@ _initialize_c_exp () init_type (TYPE_CODE_INT, TARGET_CHAR_BIT / TARGET_CHAR_BIT, 0, "char", (struct objfile *) NULL); + builtin_type_signed_char = + init_type (TYPE_CODE_INT, TARGET_CHAR_BIT / TARGET_CHAR_BIT, + TYPE_FLAG_SIGNED, + "signed char", (struct objfile *) NULL); builtin_type_unsigned_char = init_type (TYPE_CODE_INT, TARGET_CHAR_BIT / TARGET_CHAR_BIT, TYPE_FLAG_UNSIGNED, diff --git a/gdb/cplus-dem.c b/gdb/cplus-dem.c index afe9ee7b291..4c5a2f68890 100644 --- a/gdb/cplus-dem.c +++ b/gdb/cplus-dem.c @@ -507,6 +507,7 @@ cplus_demangle (type, arg_mode) done = is_pointer = 1; break; case 'C': /* const */ + case 'S': /* explicitly signed [char] */ case 'U': /* unsigned */ case 'V': /* volatile */ case 'F': /* function */ @@ -867,6 +868,14 @@ do_type (type, result, arg_mode) non_empty = 1; string_append (result, "unsigned"); break; + case 'S': /* signed char only */ + *type += 1; + if (non_empty) + string_append (result, " "); + else + non_empty = 1; + string_append (result, "signed"); + break; case 'V': *type += 1; if (print_ansi_qualifiers) diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h index 8877f8392c9..293b4175ab3 100644 --- a/gdb/gdbtypes.h +++ b/gdb/gdbtypes.h @@ -422,6 +422,7 @@ extern struct type *builtin_type_char; extern struct type *builtin_type_short; extern struct type *builtin_type_int; extern struct type *builtin_type_long; +extern struct type *builtin_type_signed_char; extern struct type *builtin_type_unsigned_char; extern struct type *builtin_type_unsigned_short; extern struct type *builtin_type_unsigned_int;