[PATCH] [ms-cxxabi] Destroy temporary record arguments in the callee
Reid Kleckner
rnk at google.com
Mon Jun 24 07:47:18 PDT 2013
On Fri, Jun 21, 2013 at 5:01 PM, John McCall <rjmccall at apple.com> wrote:
> On Jun 20, 2013, at 12:49 PM, Reid Kleckner <rnk at google.com> wrote:
>
> On Thu, Jun 20, 2013 at 1:37 PM, John McCall <rjmccall at apple.com> wrote:
>
>> Good point, sorry.
>>
>> Hmm. It looks like ActOnStartOfFunctionDef, ActOnStartOfObjCMethodDef,
>> ActOnBlockArguments, and addLambdaParameters all have basically the same
>> loop in them, but doing slightly different checks for no particular reason.
>> And there's already a CheckParmsForFunctionDef method, but it's apparently
>> not called for ObjC methods.
>>
>> I think it makes sense to have a single method called in all of these
>> cases which performs the basic checks, sets ownership, and pushes
>> parameters into scope. That method would be a natural place for your call
>> to FinalizeVarWithDestructor.
>>
>
> I ended up putting it in CheckParmsForFunctionDef. Probably ObjC methods
> should be calling that?
>
>
> I was hoping that you'd do the refactoring to make that happen. :)
>
I did a little with r184740. There's still some duplication of code like:
Param->setOwningFunction(FD);
if (Param->getIdentifier() && FnBodyScope) {
CheckShadow(FnBodyScope, Param);
PushOnScopeChains(Param, FnBodyScope);
}
I guess ObjC methods should be calling CheckShadow?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130624/c6af56f3/attachment.html>
More information about the cfe-commits
mailing list