2010-03-17 Stan Shebs <stan@codesourcery.com>

* ax-gdb.c (require_rvalue): Disallow non-scalars.
This commit is contained in:
Stan Shebs 2010-03-18 01:47:33 +00:00
parent 573cda036a
commit 3a96536b17
2 changed files with 11 additions and 0 deletions

View File

@ -1,5 +1,7 @@
2010-03-17 Stan Shebs <stan@codesourcery.com>
* ax-gdb.c (require_rvalue): Disallow non-scalars.
* infcall.c: Include tracepoint.h.
(call_function_by_hand): Disallow calls in tfind mode.
* infcmd.c: Include tracepoint.h.

View File

@ -745,6 +745,15 @@ gen_int_literal (struct agent_expr *ax, struct axs_value *value, LONGEST k,
static void
require_rvalue (struct agent_expr *ax, struct axs_value *value)
{
/* Only deal with scalars, structs and such may be too large
to fit in a stack entry. */
value->type = check_typedef (value->type);
if (TYPE_CODE (value->type) == TYPE_CODE_ARRAY
|| TYPE_CODE (value->type) == TYPE_CODE_STRUCT
|| TYPE_CODE (value->type) == TYPE_CODE_UNION
|| TYPE_CODE (value->type) == TYPE_CODE_FUNC)
error ("Value not scalar: cannot be an rvalue.");
switch (value->kind)
{
case axs_rvalue: