[PATCH] [ms-cxxabi] Destroy temporary record arguments in the callee
Reid Kleckner
rnk at google.com
Thu Jun 20 06:15:56 PDT 2013
On Tue, Jun 18, 2013 at 10:15 PM, John McCall <rjmccall at apple.com> wrote:
> +
> + // In the MSVC++ ABI, make sure arguments have valid destructors.
> + if
> (Context.getTargetInfo().getCXXABI().isTemporaryDestroyedByCallee())
> + CheckByValParamsForDtors(NewFD);
> +
>
> Please just do this in CheckParameter. Check for C++ first, then the ABI
> flag,
> then a record type, then call FinalizeVarWithDestructor. :)
>
On further testing, I don't think this works because CheckParameter fires
on function declarations, where the record might not be complete:
struct A;
void foo(A a); // Can't look at A's dtor here.
class A {
friend void bar(A); // Can't look at A's dtor here.
};
We don't actually know if the parameter decl is for a definition until
ActOnFunctionDeclarator().
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130620/19d1a9ae/attachment.html>
More information about the cfe-commits
mailing list