Hi Eli,
James sugguests me that we should use name ITANIUM rather than X86 since we
are dealing with Itanium C++ ABI (used by x86) and ARM ABI. Please use the
attach new patch instead of the old one. Thanks!
> This patch addresses x86/ARM C++ ABI difference on member function pointer.
> You can see more detail in Sec. 3.2.1 "Representation of pointer to member
> function" [1].
>
> Regards,
> chenwj
>
> [1]
> http://infocenter.arm.com/help/topic/com.arm.doc.ihi0041c/IHI0041C_cppabi.pdf
Regards,
chenwj
--
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
Index: virt-call-offsets.cpp
===================================================================
--- virt-call-offsets.cpp (revision 155901)
+++ virt-call-offsets.cpp (working copy)
@@ -1,8 +1,10 @@
-// RUN: %clang_cc1 %s -emit-llvm -o - | FileCheck %s
+// RUN: %clang_cc1 %s -triple x86_64-none-linux-gnu -emit-llvm -o - | FileCheck %s -check-prefix=ITANIUM
+// RUN: %clang_cc1 %s -triple arm-none-linux-gnueabi -emit-llvm -o - | FileCheck %s -check-prefix=ARM
struct A { virtual void a(); };
struct B : A {};
struct C : B { virtual void a(); };
void (C::*x)() = &C::a;
-// CHECK: @x = global { i{{[0-9]+}}, i{{[0-9]+}} } { i{{[0-9]+}} 1, i{{[0-9]+}} 0 }
+// ITANIUM: @x = global { i{{[0-9]+}}, i{{[0-9]+}} } { i{{[0-9]+}} 1, i{{[0-9]+}} 0 }
+// ARM: @x = global { i{{[0-9]+}}, i{{[0-9]+}} } { i{{[0-9]+}} 0, i{{[0-9]+}} 1 }
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits