mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-02-17 13:10:12 +08:00
* gdbtypes.h (make_function_type): Remove OBJFILE parameter.
* gdbtypes.c (make_function_type): Remove OBJFILE parameter. (lookup_function_type): Update call. * stabsread.c (read_type): Likewise. * dwarf2read.c (read_subroutine_type): Use lookup_function_type instead of make_function_type. * jv-lang.c (type_from_class): Likewise. Do not allocate types on the fake "dynamics" obstack.
This commit is contained in:
parent
46bf50512c
commit
0c8b41f1c6
@ -1,3 +1,14 @@
|
||||
2009-06-29 Ulrich Weigand <uweigand@de.ibm.com>
|
||||
|
||||
* gdbtypes.h (make_function_type): Remove OBJFILE parameter.
|
||||
* gdbtypes.c (make_function_type): Remove OBJFILE parameter.
|
||||
(lookup_function_type): Update call.
|
||||
* stabsread.c (read_type): Likewise.
|
||||
* dwarf2read.c (read_subroutine_type): Use lookup_function_type
|
||||
instead of make_function_type.
|
||||
* jv-lang.c (type_from_class): Likewise. Do not allocate types
|
||||
on the fake "dynamics" obstack.
|
||||
|
||||
2009-06-29 Ulrich Weigand <uweigand@de.ibm.com>
|
||||
|
||||
* gdbtypes.h (struct builtin_type): Remove builtin_core_addr,
|
||||
|
@ -5297,7 +5297,7 @@ read_subroutine_type (struct die_info *die, struct dwarf2_cu *cu)
|
||||
struct attribute *attr;
|
||||
|
||||
type = die_type (die, cu);
|
||||
ftype = make_function_type (type, (struct type **) 0, cu->objfile);
|
||||
ftype = lookup_function_type (type);
|
||||
|
||||
/* All functions in C++, Pascal and Java have prototypes. */
|
||||
attr = dwarf2_attr (die, DW_AT_prototyped, cu);
|
||||
|
@ -378,24 +378,24 @@ lookup_reference_type (struct type *type)
|
||||
/* Lookup a function type that returns type TYPE. TYPEPTR, if
|
||||
nonzero, points to a pointer to memory where the function type
|
||||
should be stored. If *TYPEPTR is zero, update it to point to the
|
||||
function type we return. We allocate new memory from OBJFILE if needed; use
|
||||
NULL for permanent types. */
|
||||
function type we return. We allocate new memory if needed. */
|
||||
|
||||
struct type *
|
||||
make_function_type (struct type *type, struct type **typeptr,
|
||||
struct objfile *objfile)
|
||||
make_function_type (struct type *type, struct type **typeptr)
|
||||
{
|
||||
struct type *ntype; /* New type */
|
||||
struct objfile *objfile;
|
||||
|
||||
if (typeptr == 0 || *typeptr == 0) /* We'll need to allocate one. */
|
||||
{
|
||||
ntype = alloc_type (objfile);
|
||||
ntype = alloc_type (TYPE_OBJFILE (type));
|
||||
if (typeptr)
|
||||
*typeptr = ntype;
|
||||
}
|
||||
else /* We have storage, but need to reset it. */
|
||||
{
|
||||
ntype = *typeptr;
|
||||
objfile = TYPE_OBJFILE (ntype);
|
||||
smash_type (ntype);
|
||||
TYPE_OBJFILE (ntype) = objfile;
|
||||
}
|
||||
@ -415,7 +415,7 @@ make_function_type (struct type *type, struct type **typeptr,
|
||||
struct type *
|
||||
lookup_function_type (struct type *type)
|
||||
{
|
||||
return make_function_type (type, (struct type **) 0, TYPE_OBJFILE (type));
|
||||
return make_function_type (type, (struct type **) 0);
|
||||
}
|
||||
|
||||
/* Identify address space identifier by name --
|
||||
|
@ -1186,8 +1186,7 @@ extern struct type *make_pointer_type (struct type *, struct type **);
|
||||
|
||||
extern struct type *lookup_pointer_type (struct type *);
|
||||
|
||||
extern struct type *make_function_type (struct type *, struct type **,
|
||||
struct objfile *);
|
||||
extern struct type *make_function_type (struct type *, struct type **);
|
||||
|
||||
extern struct type *lookup_function_type (struct type *);
|
||||
|
||||
|
@ -302,7 +302,10 @@ type_from_class (struct value *clas)
|
||||
if (type != NULL)
|
||||
return type;
|
||||
|
||||
type = alloc_type (objfile);
|
||||
/* Do not use the "fake" dynamics objfile to own dynamically generated
|
||||
types, as it does not provide an architecture, and it would not help
|
||||
manage the lifetime of these types anyway. */
|
||||
type = alloc_type (NULL);
|
||||
TYPE_CODE (type) = TYPE_CODE_STRUCT;
|
||||
INIT_CPLUS_SPECIFIC (type);
|
||||
|
||||
@ -560,7 +563,7 @@ java_link_class_type (struct type *type, struct value *clas)
|
||||
fn_fields[k].physname = "";
|
||||
fn_fields[k].is_stub = 1;
|
||||
/* FIXME */
|
||||
fn_fields[k].type = make_function_type (java_void_type, NULL, objfile);
|
||||
fn_fields[k].type = lookup_function_type (java_void_type);
|
||||
TYPE_CODE (fn_fields[k].type) = TYPE_CODE_METHOD;
|
||||
}
|
||||
|
||||
|
@ -1682,8 +1682,7 @@ read_type (char **pp, struct objfile *objfile)
|
||||
|
||||
case 'f': /* Function returning another type */
|
||||
type1 = read_type (pp, objfile);
|
||||
type = make_function_type (type1, dbx_lookup_type (typenums, objfile),
|
||||
objfile);
|
||||
type = make_function_type (type1, dbx_lookup_type (typenums, objfile));
|
||||
break;
|
||||
|
||||
case 'g': /* Prototyped function. (Sun) */
|
||||
@ -1707,7 +1706,7 @@ read_type (char **pp, struct objfile *objfile)
|
||||
struct type *return_type = read_type (pp, objfile);
|
||||
struct type *func_type
|
||||
= make_function_type (return_type,
|
||||
dbx_lookup_type (typenums, objfile), objfile);
|
||||
dbx_lookup_type (typenums, objfile));
|
||||
struct type_list {
|
||||
struct type *type;
|
||||
struct type_list *next;
|
||||
|
Loading…
Reference in New Issue
Block a user