gdb/
* gdbtypes.c (check_typedef): New comment on type length. * value.c (allocate_value_lazy): Remove the unused atype variable. New comment on type length. (value_primitive_field): Keep the original TYPE value, new comment. gdb/testsuite/ * gdb.mi/var-cmd.c (do_bitfield_tests): Change "V.sharable" type to "uint_for_mi_testing".
This commit is contained in:
parent
5aade3dba4
commit
c54eabfaa8
5 changed files with 38 additions and 6 deletions
|
@ -1,3 +1,11 @@
|
|||
2010-01-03 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
Joel Brobecker <brobecker@adacore.com>
|
||||
|
||||
* gdbtypes.c (check_typedef): New comment on type length.
|
||||
* value.c (allocate_value_lazy): Remove the unused atype variable. New
|
||||
comment on type length.
|
||||
(value_primitive_field): Keep the original TYPE value, new comment.
|
||||
|
||||
2010-01-01 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
* cli/cli-script.c (process_next_line): Rename p1 as p_end and p2 as
|
||||
|
|
|
@ -1342,12 +1342,17 @@ stub_noname_complaint (void)
|
|||
symbols which contain a full definition for the type.
|
||||
|
||||
This used to be coded as a macro, but I don't think it is called
|
||||
often enough to merit such treatment. */
|
||||
often enough to merit such treatment.
|
||||
|
||||
/* Find the real type of TYPE. This function returns the real type,
|
||||
Find the real type of TYPE. This function returns the real type,
|
||||
after removing all layers of typedefs and completing opaque or stub
|
||||
types. Completion changes the TYPE argument, but stripping of
|
||||
typedefs does not. */
|
||||
typedefs does not.
|
||||
|
||||
If TYPE is a TYPE_CODE_TYPEDEF, its length is (also) set to the length of
|
||||
the target type instead of zero. However, in the case of TYPE_CODE_TYPEDEF
|
||||
check_typedef can still return different type than the original TYPE
|
||||
pointer. */
|
||||
|
||||
struct type *
|
||||
check_typedef (struct type *type)
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2010-01-03 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
* gdb.mi/var-cmd.c (do_bitfield_tests): Change "V.sharable" type to
|
||||
"uint_for_mi_testing".
|
||||
|
||||
2010-01-01 Joel Brobecker <brobecker@adacore.com>
|
||||
|
||||
Test indented comment in file being sourced.
|
||||
|
|
|
@ -494,7 +494,7 @@ void do_bitfield_tests ()
|
|||
mi_create_varobj V d "create varobj for Data"
|
||||
mi_list_varobj_children "V" {
|
||||
{"V.alloc" "alloc" "0" "int"}
|
||||
{"V.sharable" "sharable" "0" "unsigned int"}
|
||||
{"V.sharable" "sharable" "0" "uint_for_mi_testing"}
|
||||
} "list children of Data"
|
||||
mi_check_varobj_value V.sharable 3 "access bitfield"
|
||||
:*/
|
||||
|
|
18
gdb/value.c
18
gdb/value.c
|
@ -254,7 +254,14 @@ struct value *
|
|||
allocate_value_lazy (struct type *type)
|
||||
{
|
||||
struct value *val;
|
||||
struct type *atype = check_typedef (type);
|
||||
|
||||
/* Call check_typedef on our type to make sure that, if TYPE
|
||||
is a TYPE_CODE_TYPEDEF, its length is set to the length
|
||||
of the target type instead of zero. However, we do not
|
||||
replace the typedef type by the target type, because we want
|
||||
to keep the typedef in order to be able to set the VAL's type
|
||||
description correctly. */
|
||||
check_typedef (type);
|
||||
|
||||
val = (struct value *) xzalloc (sizeof (struct value));
|
||||
val->contents = NULL;
|
||||
|
@ -1873,7 +1880,14 @@ value_primitive_field (struct value *arg1, int offset,
|
|||
|
||||
CHECK_TYPEDEF (arg_type);
|
||||
type = TYPE_FIELD_TYPE (arg_type, fieldno);
|
||||
type = check_typedef (type);
|
||||
|
||||
/* Call check_typedef on our type to make sure that, if TYPE
|
||||
is a TYPE_CODE_TYPEDEF, its length is set to the length
|
||||
of the target type instead of zero. However, we do not
|
||||
replace the typedef type by the target type, because we want
|
||||
to keep the typedef in order to be able to print the type
|
||||
description correctly. */
|
||||
check_typedef (type);
|
||||
|
||||
/* Handle packed fields */
|
||||
|
||||
|
|
Loading…
Reference in a new issue