------- Comment #1 from rguenth at gcc dot gnu dot org 2007-09-08 20:40 ------- VS seems to dispatch to some other function. Dependend on whether the method is virtual or not the code path has to be more complicated. Of course this is also dependent on the actual ABI. That is,
L7: leal (%ebx,%edx), %edx movl %edx, 8(%ebp) popl %ebx popl %ebp jmp *%ecx is the equivalent to the direct jump, and the rest involves loading the vtable pointer. leal (%ebx,%edx), %edx movl (%edx), %eax movl -1(%eax,%ecx), %ecx movl %edx, 8(%ebp) popl %ebx popl %ebp jmp *%ecx and of course the check if this is a virtual method or not. -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |INVALID http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33358