diff options
-rw-r--r-- | gdb/ChangeLog | 3 | ||||
-rw-r--r-- | gdb/stabsread.c | 3 | ||||
-rw-r--r-- | gdb/valops.c | 12 |
3 files changed, 11 insertions, 7 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index ea3ed7b..99a3767 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,7 +1,10 @@ Thu Jan 11 17:21:25 1996 Per Bothner <bothner@kalessin.cygnus.com> + * stabsread.c (read_struct_type): Trivial simplification. + * stabsread.c (define-symbol): Use invisible references for TYPE_CODE_SET and TYPE_CODE_BITSTRING too. + * valops.c (call_function_by_hand): Likewise. * eval.c (evaluate_subexp_standard): When known, use the formal parameter type as the expected type when evaluating arg expressions. * ch-lang.c (evaluate_subexp_chill): Likewise (for MULTI_SUBSCRIPT). diff --git a/gdb/stabsread.c b/gdb/stabsread.c index c81b21e..ba36fb2 100644 --- a/gdb/stabsread.c +++ b/gdb/stabsread.c @@ -2967,8 +2967,7 @@ read_struct_type (pp, type, objfile) || !attach_fn_fields_to_type (&fi, type) || !read_tilde_fields (&fi, pp, type, objfile)) { - do_cleanups (back_to); - return (error_type (pp, objfile)); + type = error_type (pp, objfile); } do_cleanups (back_to); diff --git a/gdb/valops.c b/gdb/valops.c index 6e6eae0..046d213 100644 --- a/gdb/valops.c +++ b/gdb/valops.c @@ -187,11 +187,11 @@ value_cast (type, arg2) COERCE_VARYING_ARRAY (arg2, type2); code2 = TYPE_CODE (type2); - if (code1 == TYPE_CODE_COMPLEX) - return cast_into_complex (type, arg2); - if (code1 == TYPE_CODE_BOOL) + if (code1 == TYPE_CODE_COMPLEX) + return cast_into_complex (type, arg2); + if (code1 == TYPE_CODE_BOOL || code1 == TYPE_CODE_CHAR) code1 = TYPE_CODE_INT; - if (code2 == TYPE_CODE_BOOL) + if (code2 == TYPE_CODE_BOOL || code2 == TYPE_CODE_CHAR) code2 = TYPE_CODE_INT; scalar = (code2 == TYPE_CODE_INT || code2 == TYPE_CODE_FLT @@ -1137,7 +1137,9 @@ call_function_by_hand (function, nargs, args) if ((TYPE_CODE (arg_type) == TYPE_CODE_STRUCT || TYPE_CODE (arg_type) == TYPE_CODE_UNION || TYPE_CODE (arg_type) == TYPE_CODE_ARRAY - || TYPE_CODE (arg_type) == TYPE_CODE_STRING) + || TYPE_CODE (arg_type) == TYPE_CODE_STRING + || TYPE_CODE (arg_type) == TYPE_CODE_BITSTRING + || TYPE_CODE (arg_type) == TYPE_CODE_SET) && REG_STRUCT_HAS_ADDR (using_gcc, arg_type)) { CORE_ADDR addr; |