https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65143
Markus Trippelsdorf <trippels at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |trippels at gcc dot gnu.org --- Comment #6 from Markus Trippelsdorf <trippels at gcc dot gnu.org> --- Testcase from PR67184: markus@x4 tmp % cat test.ii struct V { virtual void foo(); }; struct wV final : V {}; struct oV final : V { void foo(); }; void call(V &x) { x.foo(); } void call(wV &x) { x.foo(); } void call(oV &x) { x.foo(); } markus@x4 tmp % clang++ -std=c++14 -c -O3 -S test.ii -o - ... _Z4callR2wV: # @_Z4callR2wV .cfi_startproc # BB#0: # %entry jmp _ZN1V3fooEv # TAILCALL ... markus@x4 tmp % g++ -std=c++14 -O3 -c -S test.ii -o - ... _Z4callR2wV: .LFB1: .cfi_startproc movq (%rdi), %rax jmp *(%rax)