From 04f27ddc6da0958519761c5fcb778beedad8871c Mon Sep 17 00:00:00 2001 From: Per Bothner Date: Thu, 26 Mar 1992 08:33:43 +0000 Subject: * c-exp.y, gdbtypes.h: Add builtin_type_signed_char. * cplus-dem.c: Support "Sc" meaning "signed char". --- gdb/ChangeLog | 5 +++++ gdb/c-exp.y | 6 ++++++ gdb/cplus-dem.c | 9 +++++++++ gdb/gdbtypes.h | 1 + 4 files changed, 21 insertions(+) (limited to 'gdb') diff --git a/gdb/ChangeLog b/gdb/ChangeLog index e00ae64..bdc69e8 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 bbf66e0..7183fe7 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 afe9ee7..4c5a2f6 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 8877f83..293b417 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; -- cgit v1.1