* ch-lang.c (evaluate_subexp_chill case MULTI_SUBSCRIPT): Error
if "function" is pointer to non-function. Fixes PR chill/9095.
This commit is contained in:
parent
4b29551786
commit
02e6e53d84
|
@ -1,3 +1,8 @@
|
||||||
|
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>
|
Mon Mar 4 17:47:03 1996 Stan Shebs <shebs@andros.cygnus.com>
|
||||||
|
|
||||||
* top.c (print_gdb_version): Update copyright year.
|
* top.c (print_gdb_version): Update copyright year.
|
||||||
|
|
|
@ -423,6 +423,10 @@ evaluate_subexp_chill (expect_type, exp, pos, noside)
|
||||||
switch (TYPE_CODE (type))
|
switch (TYPE_CODE (type))
|
||||||
{
|
{
|
||||||
case TYPE_CODE_PTR:
|
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:
|
case TYPE_CODE_FUNC:
|
||||||
/* It's a function call. */
|
/* It's a function call. */
|
||||||
if (noside == EVAL_AVOID_SIDE_EFFECTS)
|
if (noside == EVAL_AVOID_SIDE_EFFECTS)
|
||||||
|
@ -433,16 +437,11 @@ evaluate_subexp_chill (expect_type, exp, pos, noside)
|
||||||
argvec = (value_ptr *) alloca (sizeof (value_ptr) * (nargs + 2));
|
argvec = (value_ptr *) alloca (sizeof (value_ptr) * (nargs + 2));
|
||||||
argvec[0] = arg1;
|
argvec[0] = arg1;
|
||||||
tem = 1;
|
tem = 1;
|
||||||
if (type && TYPE_CODE (type) == TYPE_CODE_PTR)
|
for (; tem <= nargs && tem <= TYPE_NFIELDS (type); tem++)
|
||||||
type = check_typedef (TYPE_TARGET_TYPE (type));
|
|
||||||
if (type && TYPE_CODE (type) == TYPE_CODE_FUNC)
|
|
||||||
{
|
{
|
||||||
for (; tem <= nargs && tem <= TYPE_NFIELDS (type); tem++)
|
argvec[tem]
|
||||||
{
|
= evaluate_subexp_chill (TYPE_FIELD_TYPE (type, tem-1),
|
||||||
argvec[tem]
|
exp, pos, noside);
|
||||||
= evaluate_subexp_chill (TYPE_FIELD_TYPE (type, tem-1),
|
|
||||||
exp, pos, noside);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
for (; tem <= nargs; tem++)
|
for (; tem <= nargs; tem++)
|
||||||
argvec[tem] = evaluate_subexp_with_coercion (exp, pos, noside);
|
argvec[tem] = evaluate_subexp_with_coercion (exp, pos, noside);
|
||||||
|
|
Loading…
Reference in New Issue