[cfe-commits] [PATCH] Fix test case failure due to C++ ABI difference on ARM
陳韋任
chenwj at iis.sinica.edu.tw
Wed May 2 01:11:37 PDT 2012
> > Okay, I see the test done by virt-call-offsets.cpp is moved to member-function-pointers.cpp.
> > Do you know what the fix on X86/ARM ctor ABI difference status is [1]?
>
> virt-call-offsets.cpp was not expecting to be tested on an ARM host. That's
> a legitimate flaw in the test, but it does not indicate a bug in our handling of
> the ARM C++ ABI. I implemented returning this from ctors and dtors on
> ARM targets in August 2010 in r112588, and as far as I know, there is nothing to fix.
I know the ARM C++ ctor ABI is handled correctly. :) Actually I want to know
the status of the patch [1] which change the matching rule from
// CHECK: call void @_ZN10destroyme1D1Ev
to
// CHECK: call {{.*}}* @_ZN10destroyme1D1Ev
I don't see they are applied in the trunk.
> I do know that there are parts of the ARM C++ ABI that we do not currently
> implement: for example, the ARM ABI has slightly different rules for selecting
> a key function, but clang always uses the base Itanium rule.
>
> Note that not all ARM-based platforms actually follow the full ARM C++ ABI.
> iOS, for example, does not guarantee that ctors and dtors return this; clang
> does it, but gcc and llvm-gcc do not.
Thanks for the info. ;)
Regards,
chenwj
[1]
http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20120430/056982.html
--
Wei-Ren Chen (陳韋任)
Computer Systems Lab, Institute of Information Science,
Academia Sinica, Taiwan (R.O.C.)
Tel:886-2-2788-3799 #1667
Homepage: http://people.cs.nctu.edu.tw/~chenwj
More information about the cfe-commits
mailing list