[cfe-commits] Bug 11709 Fix: va_list on ARM is not following AAPCS 7.1.4
Eli Friedman
eli.friedman at gmail.com
Thu Oct 18 03:11:06 PDT 2012
On Thu, Oct 18, 2012 at 1:40 AM, Logan Chien <tzuhsiang.chien at gmail.com> wrote:
> Hi,
>
> Here's another attempt to solve __builtin_va_arg issue.
> In this patch, there is a special check for C++ and va_list as
> record type:
>
> } else if (VaListType->isRecordType() && getLangOpts().CPlusPlus) {
> // If va_list is a record type and we are compiling under C++ mode,
> // then we should check the argument by copy assignment operator.
> InitializedEntity Entity
> = InitializedEntity::InitializeParameter(Context,
> Context.getLValueReferenceType(VaListType), false);
> ExprResult Init = PerformCopyInitialization(Entity, SourceLocation(),
> E);
> if (Init.isInvalid())
> return ExprError();
> E = Init.takeAs<Expr>();
>
> With this patch, I can get the same assembly result. However, I'm not
> familiar with InitializedEntity. Please have a look.
Please include a testcase where PerformCopyInitialization fails.
-Eli
More information about the cfe-commits
mailing list