[cfe-commits] Fwd: Bug 11709 Fix: va_list on ARM is not following AAPCS 7.1.4

David Tweed David.Tweed at arm.com
Fri Oct 19 05:42:36 PDT 2012


Hi
I've just finished a test run with this patch on an ubuntu gnueabihf pandaboard and the constructor failures are now gone.

Thanks for working on getting the regression fixed.

Cheers,
Dave

From: cfe-commits-bounces at cs.uiuc.edu [mailto:cfe-commits-bounces at cs.uiuc.edu] On Behalf Of Logan Chien
Sent: 19 October 2012 05:54
To: Eli Friedman; Weiming Zhao; cfe-commits at cs.uiuc.edu
Subject: Re: [cfe-commits] Fwd: Bug 11709 Fix: va_list on ARM is not following AAPCS 7.1.4

Thanks for the review.  I have updated the comments, and the test
cases for ARM.  The new patch file is attached.

Thanks.
Logan
On Fri, Oct 19, 2012 at 7:47 AM, Eli Friedman <eli.friedman at gmail.com<mailto:eli.friedman at gmail.com>> wrote:
On Thu, Oct 18, 2012 at 8:23 AM, Logan Chien <tzuhsiang.chien at gmail.com<mailto:tzuhsiang.chien at gmail.com>> wrote:
>
>
> ---------- Forwarded message ----------
> From: Logan Chien <tzuhsiang.chien at gmail.com<mailto:tzuhsiang.chien at gmail.com>>
> 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 <eli.friedman at gmail.com<mailto:eli.friedman at gmail.com>>
>
>
> 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.
The code is doing the right thing.

+    // If va_list is a record type and we are compiling under C++ mode,
+    // then we should check the argument by copy assignment operator

This comment is wrong; even though you're using
PerformCopyInitialization, there's no actual copy because the
InitializedEntity has reference type.  "If va_list is a record type
and we are compiling in C++ mode, check the argument using reference
binding."

+// RUN: %clang_cc1 -triple armv7 -fsyntax-only -verify %s
+
+#if defined(__ARM_PCS) || defined(__ARM_EABI__)

Please don't use an ifdef here; just use an appropriate triple.

Otherwise, looks fine.

-Eli
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20121019/ddc2421d/attachment.html>


More information about the cfe-commits mailing list