http://llvm.org/bugs/show_bug.cgi?id=16971
Bug ID: 16971
Summary: The function type of thunks is wrong?
Product: clang
Version: trunk
Hardware: PC
OS: Linux
Status: NEW
Severity: normal
Priority: P
Component: C++
Assignee: [email protected]
Reporter: [email protected]
CC: [email protected], [email protected]
Classification: Unclassified
I've noticed that for such a code:
-----------------
struct A {
virtual void f();
};
struct B {
virtual void f();
};
struct C : A, B {
virtual void f();
};
void C::f() { }
-----------------
the function type of the thunk is a bit wrong:
-----------------
define void @_ZThn8_N1C1fEv(%struct.C* %this) unnamed_addr #0 align 2 {
...
%1 = getelementptr inbounds i8* %0, i64 -8
%2 = bitcast i8* %1 to %struct.C*
call void @_ZN1C1fEv(%struct.C* %2)
...
-----------------
(as of r188899)
I believe it should be "define void @_ZThn8_N1C1fEv(%struct.B* %this)" instead.
--
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs