2006-02-16 Fred Fish <fnf@specifix.com>

* eval.c (evaluate_subexp_standard):  For OP_TYPE, return
	a non lval value zero, of the appropriate type, when avoiding
	side effects.
	* typeprint.c (ptype_eval): Remove function and declaration.
	(ptype_command): Simplify to just a call to whatis_exp.
This commit is contained in:
Fred Fish
2006-02-18 20:47:54 +00:00
parent 62f3a2ba52
commit d843c49cbf
3 changed files with 18 additions and 47 deletions

View File

@ -2086,7 +2086,15 @@ evaluate_subexp_standard (struct type *expect_type,
return value_of_local ("self", 1);
case OP_TYPE:
error (_("Attempt to use a type name as an expression"));
/* The value is not supposed to be used. This is here to make it
easier to accommodate expressions that contain types. */
(*pos) += 2;
if (noside == EVAL_SKIP)
goto nosideret;
else if (noside == EVAL_AVOID_SIDE_EFFECTS)
return allocate_value (exp->elts[pc + 1].type);
else
error (_("Attempt to use a type name as an expression"));
default:
/* Removing this case and compiling with gcc -Wall reveals that