[LLVMbugs] [Bug 16971] New: The function type of thunks is wrong?

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Thu Aug 22 08:44:50 PDT 2013


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: unassignedclangbugs at nondot.org
          Reporter: timurrrr at google.com
                CC: dgregor at apple.com, llvmbugs at cs.uiuc.edu
    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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20130822/97fc8b33/attachment.html>


More information about the llvm-bugs mailing list