Re: [PATCH] Objective-C language support.

Michael Snyder
2002-10-09T00:16:37Z

Adam Fedor wrote:
>
> This patch adds Objective-C language support to gdb based upon a patch
> provided by Apple Computer Inc from their version of gdb. Note that the
> patch only contains changes to existing files. New files (objc-lang.h,
> objc-lang.c, objc-exp.y) and a gdb.objc testsuite directory are located at
>
> ftp://ftp.gnustep.org/pub/gnustep/contrib/gdb-objc-patch.tar.gz
>

Approved as obvious: please check it in after the defs.h change goes in.

> * language.c (binop_result_type): Add language_objc to case.
> (integral_type): Likewise.
> (character_type): Likewise.
> (string_type): Likewise.
> (boolean_type): Likewise.
> (structured_type): Likewise.
> (binop_type_check): Likewise.

> Index: gdb/language.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/language.c,v
> retrieving revision 1.26
> diff -u -p -r1.26 language.c
> --- gdb/language.c 1 Aug 2002 17:18:32 -0000 1.26
> +++ gdb/language.c 17 Sep 2002 19:30:31 -0000
> @@ -549,6 +549,7 @@ binop_result_type (struct value *v1, str
> {
> case language_c:
> case language_cplus:
> + case language_objc:
> if (TYPE_CODE (t1) == TYPE_CODE_FLT)
> return TYPE_CODE (t2) == TYPE_CODE_FLT && l2 > l1 ?
> VALUE_TYPE (v2) : VALUE_TYPE (v1);
> @@ -786,6 +787,7 @@ integral_type (struct type *type)
> {
> case language_c:
> case language_cplus:
> + case language_objc:
> return (TYPE_CODE (type) != TYPE_CODE_INT) &&
> (TYPE_CODE (type) != TYPE_CODE_ENUM) ? 0 : 1;
> case language_m2:
> @@ -828,6 +830,7 @@ character_type (struct type *type)
>
> case language_c:
> case language_cplus:
> + case language_objc:
> return (TYPE_CODE (type) == TYPE_CODE_INT) &&
> TYPE_LENGTH (type) == sizeof (char)
> ? 1 : 0;
> @@ -850,6 +853,7 @@ string_type (struct type *type)
>
> case language_c:
> case language_cplus:
> + case language_objc:
> /* C does not have distinct string type. */
> return (0);
> default:
> @@ -868,6 +872,7 @@ boolean_type (struct type *type)
> {
> case language_c:
> case language_cplus:
> + case language_objc:
> /* Might be more cleanly handled by having a
> TYPE_CODE_INT_NOT_BOOL for (OBSOLETE) CHILL and such
> languages, or a TYPE_CODE_INT_OR_BOOL for C. */
> @@ -904,6 +909,7 @@ structured_type (struct type *type)
> {
> case language_c:
> case language_cplus:
> + case language_objc:
> return (TYPE_CODE (type) == TYPE_CODE_STRUCT) ||
> (TYPE_CODE (type) == TYPE_CODE_UNION) ||
> (TYPE_CODE (type) == TYPE_CODE_ARRAY);
> @@ -1124,6 +1130,7 @@ binop_type_check (struct value *arg1, st
> #ifdef _LANG_c
> case language_c:
> case language_cplus:
> + case language_objc:
> switch (op)
> {