This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: question about if_marked construct


On Jun 23, 2010, at 16:49, Ian Lance Taylor wrote:

Tom de Vries <tjvries@xs4all.nl> writes:

static int prop(const_tree type)
{
  return type == A;
}

static int type_hash_marked_p (const void *p) {
 const_tree const type = ((const struct type_hash *) p)->type;
 return ggc_marked_p (type) || prop (type);
}

I would like to question your premise. The gcc garbage collector is not some general purpose library. It's specifically for the use of gcc. Why, in gcc, would you want to write such an if_marked property? Is there some simpler and clearer way to express what you actually want to have happen?

Ian

Hi Ian,


Thanks for your reaction.

What I am really trying to do, is a bootstrap debug build of 4.3.5. However, I ran into bug 31230. I minimized the testcase, did an analysis, created a naive patch to test my hypothesis, tested the patch and put it in the bug report. Now I'm looking for feedback.

In the question I asked to this mailing list I tried to abstract away from the specific case I analyzed, to get a more conceptual discussion about the garbage collector, but maybe that was a mistake, sorry for the confusion.

My analysis, what I'm trying to get confirmed, is that the the actual type_hash_marked_p() in gcc is 'such an if_marked property':
...
static int type_hash_marked_p (const void *p) {
tree type = ((struct type_hash *) p)->type;
return ggc_marked_p (type) || TYPE_SYMTAB_POINTER (type);
}
...


Regards
  Tom


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]