* infcall.c (value_arg_coerce): Use value_cast_pointers for
	references.  Avoid value_cast to a reference type.  Don't silently
	convert pointers to references.
	* valops.c (value_cast_pointers): New, based on value_cast.
	(value_cast): Use it.  Reject reference types.
	(value_ref): New.
	(typecmp): Use it.
	* value.h (value_cast_pointers, value_ref): New prototypes.
gdb/testsuite/
	* gdb.cp/ref-params.exp: New test.
	* gdb.cp/ref-params.cc: New source file.
	* gdb.cp/Makefile.in (EXECUTABLES): Add ref-params.
This commit is contained in:
Daniel Jacobowitz
2006-07-13 04:31:42 +00:00
parent d49c44d5f1
commit fb93362492
8 changed files with 284 additions and 53 deletions

View File

@@ -325,6 +325,8 @@ extern struct value *value_ind (struct value *arg1);
extern struct value *value_addr (struct value *arg1);
extern struct value *value_ref (struct value *arg1);
extern struct value *value_assign (struct value *toval,
struct value *fromval);
@@ -367,6 +369,8 @@ extern struct type *value_rtti_target_type (struct value *, int *, int *,
extern struct value *value_full_object (struct value *, struct type *, int,
int, int);
extern struct value *value_cast_pointers (struct type *, struct value *);
extern struct value *value_cast (struct type *type, struct value *arg2);
extern struct value *value_zero (struct type *type, enum lval_type lv);