aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorPer Bothner <per@bothner.com>1996-01-12 07:12:42 +0000
committerPer Bothner <per@bothner.com>1996-01-12 07:12:42 +0000
commit34cfa2dab5a0d1f6c53b24847d6fd590c7a618c0 (patch)
treee21eeb4302dbbd2fdead81f627a855a0d1589d38 /gdb
parentc9746fb695adc5dc98cf3b2c14d36f2a7503ef6a (diff)
downloadgdb-34cfa2dab5a0d1f6c53b24847d6fd590c7a618c0.zip
gdb-34cfa2dab5a0d1f6c53b24847d6fd590c7a618c0.tar.gz
gdb-34cfa2dab5a0d1f6c53b24847d6fd590c7a618c0.tar.bz2
* stabsread.c (read_struct_type): Trivial simplification.
* valops.c (call_function_by_hand): Use invisible references for TYPE_CODE_SET and TYPE_CODE_BITSTRING too.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog3
-rw-r--r--gdb/stabsread.c3
-rw-r--r--gdb/valops.c12
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;