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

Eli Friedman eli.friedman at gmail.com
Thu Oct 18 16:47:38 PDT 2012


On Thu, Oct 18, 2012 at 8:23 AM, Logan Chien <tzuhsiang.chien at gmail.com> wrote:
>
>
> ---------- Forwarded message ----------
> From: Logan Chien <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>
>
>
> 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



More information about the cfe-commits mailing list