On Aug 20, 2012, at 18:47 , Jordan Rose <[email protected]> wrote:

> Yeah, I don't like this approach as much as I thought I would. My original 
> reason for making a new summary out of an old one was to re-use the existing 
> summary evaluation code. This eliminates that, and processSummaryOfInlined is 
> crippled since it only handles StopTrackingHard and NoRetHard. And there's a 
> lot of duplication elsewhere.
> 
> I'd rather see this:
> 
>  RetainSummaryManager &Summaries = getSummaryManager(C);
>  const RetainSummary *Summ = Summaries.getSummary(Call, C.getState());
> 
>  if (C.wasInlined && !Summ->appliesToInlined())
>    return;
> 
>  checkSummary(*Summ, Call, C);

Thinking about this again, this is about whether we're saying "this summary 
should be applied even when inlining", or "these /effects/ should be applied 
even when inlining". Even in the latter case I'd consider adding flags to the 
ArgEffects rather than adding new ArgEffect kinds, but that's an interesting 
distinction/decision. Obviously the latter is more flexible, but which do you 
think we /should/ be doing?

Jordan
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to