---------- Forwarded message ---------- From: Logan Chien <[email protected]> Date: Thu, Oct 18, 2012 at 11:20 PM Subject: Re: [cfe-commits] Bug 11709 Fix: va_list on ARM is not following AAPCS 7.1.4 To: Eli Friedman <[email protected]>
Thanks for your review. I have added new test to test/SemaCXX/builtins-arm.cpp to specify the error message when PerformCopyInitialization fails. BTW, is the InitializedEntity related code correct? I hope I can get a modifiable Lvalue reference after initialization (not a copy of the value in the structure.) I'm not very confident with this. Thanks. Sincerely, Logan On Thu, Oct 18, 2012 at 6:11 PM, Eli Friedman <[email protected]>wrote: > On Thu, Oct 18, 2012 at 1:40 AM, Logan Chien <[email protected]> > 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 >
0001-Fix-__builtin_va_arg-assertion-failure-in-ARM-AAPCS.patch
Description: Binary data
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
