[libc++ patch] Make meta.trans.other/aligned_storage.pass.cpp pass on arm
Marshall Clow
mclow.lists at gmail.com
Tue Jun 3 20:11:42 PDT 2014
On Jun 2, 2014, at 1:11 AM, Nico Weber <thakis at chromium.org> wrote:
> Ping.
Please make this test pass under C++03, and then commit.
— Marshall
>
>
> On Fri, May 30, 2014 at 4:43 PM, Nico Weber <thakis at chromium.org> wrote:
> The attached patch implements your suggestion (without the max). I verified that this passes on x86 os x and arm android.
>
>
> On Wed, May 28, 2014 at 4:25 PM, Nico Weber <thakis at chromium.org> wrote:
> On Wed, May 28, 2014 at 4:04 PM, Marshall Clow <mclow.lists at gmail.com> wrote:
>
> On May 28, 2014, at 4:36 AM, Nico Weber <thakis at chromium.org> wrote:
>
> > Hi,
> >
> > On arm, the maxium alignment is 8. The attached patch tweaks meta.trans.other/aligned_storage.pass.cpp so that it passes on arm. (The test currently assumes that alignment goes up to at least 16.)
>
> Nico —
>
> I’m a bit leery of
> + static_assert(std::alignment_of<T1>::value == alignof(T1), "");
> b/c I’m not sure that it tests what we want to test here.
>
> Is there some way that we can use max_align_t in this test?
>
> Maybe something like (untested code):
> static_assert ( std::alignment_of<T1>::value == std::max(16, alignof(std::max_align_t));
>
> Why the max? On arm, alignof(max_align_t) is 8 (just like alignof(T1)), so max(16, alignof(max_aling_t)) is 16, while std::alignment_of<T1>::value is 8.
>
> static_assert(std::alignment_of<T1>::value ==
> alignof(std::max_align_t), "");
>
> does work though, if you like that better. Should I just s/alignof(T1)/alignof(std::max_align_t)/ in my patch?
>
>
> — Marshall
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20140603/22c4d594/attachment.html>
More information about the cfe-commits
mailing list