+Mon Mar 4 23:44:16 1996 Per Bothner <bothner@kalessin.cygnus.com>
+
+ * ch-lang.c (evaluate_subexp_chill case MULTI_SUBSCRIPT): Error
+ if "function" is pointer to non-function.
+
Mon Mar 4 17:47:03 1996 Stan Shebs <shebs@andros.cygnus.com>
* top.c (print_gdb_version): Update copyright year.
switch (TYPE_CODE (type))
{
case TYPE_CODE_PTR:
+ type = check_typedef (TYPE_TARGET_TYPE (type));
+ if (!type || TYPE_CODE (type) || TYPE_CODE_FUNC)
+ error ("reference value used as function");
+ /* ... fall through ... */
case TYPE_CODE_FUNC:
/* It's a function call. */
if (noside == EVAL_AVOID_SIDE_EFFECTS)
argvec = (value_ptr *) alloca (sizeof (value_ptr) * (nargs + 2));
argvec[0] = arg1;
tem = 1;
- if (type && TYPE_CODE (type) == TYPE_CODE_PTR)
- type = check_typedef (TYPE_TARGET_TYPE (type));
- if (type && TYPE_CODE (type) == TYPE_CODE_FUNC)
+ for (; tem <= nargs && tem <= TYPE_NFIELDS (type); tem++)
{
- for (; tem <= nargs && tem <= TYPE_NFIELDS (type); tem++)
- {
- argvec[tem]
- = evaluate_subexp_chill (TYPE_FIELD_TYPE (type, tem-1),
- exp, pos, noside);
- }
+ argvec[tem]
+ = evaluate_subexp_chill (TYPE_FIELD_TYPE (type, tem-1),
+ exp, pos, noside);
}
for (; tem <= nargs; tem++)
argvec[tem] = evaluate_subexp_with_coercion (exp, pos, noside);