Re: Question about struct type* ownership

Tom Tromey <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <[email protected]>
Jan> Let's say I'd like to create new function type "int(struct s)", where
Jan> type "int" is arch-owned and "struct s" is objfile-owned. Am I correct
Jan> thinking that resulting function type should be objfile-owned? 

Yes, in particular by the same objfile that owns "struct s".

Jan> Generally speaking, if composing new type out of other types, if at
Jan> least one of the types is objfile-owned then the new type must by
Jan> also objfile-owned (by that very objfile), right? 

Yes.

Jan> Looking at lookup_function_type_with_arguments, it allocated new
Jan> function type is always "owned" by whoever "owns" the return type
Jan> (first param to lookup_function_type_with_arguments). So if I'm correct
Jan> about the above, I'd have to extend lookup_function_type_with_arguments
Jan> to pass down type allocator (like in create_array_type). Or is there
Jan> a better way?

It's new territory, so just whatever looks reasonably clean.  I think in
the past this wasn't an issue because essentially only symbol readers
made types.

Jan> Also, when experimenting with the example above, I realized that 
Jan> the arch-owner of "int" struct type* is a different struct gdbarch *
Jan> then gdbarch associated with objfile-owner of "struct s" type
Jan> (i mean, pointer values are different).
Jan> While I would think it is okay to compose new type from types owned by 
Jan> two distinct gdbarchs from lifecycle POV, it still puzzles me why
Jan> there are two different gdbarch instances (both are i386:x86-64)?

Offhand I don't know but there are a lot of ways a gdbarch can be
initialized.  Maybe they have different registers available.

Tom
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.