[Bug c++/65143] [C++11] missing devirtualization for virtual base in "final" classes
trippels at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Aug 12 10:37:00 GMT 2015
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)
More information about the Gcc-bugs
mailing list