]> granicus.if.org Git - clang/commit
[CodeGenCXX] Emit strip.invariant.group with -fstrict-vtable-pointers
authorPiotr Padlewski <piotr.padlewski@gmail.com>
Mon, 2 Jul 2018 19:21:36 +0000 (19:21 +0000)
committerPiotr Padlewski <piotr.padlewski@gmail.com>
Mon, 2 Jul 2018 19:21:36 +0000 (19:21 +0000)
commitddb77a4e35a61b758922bc15fb68c8ca224655e5
tree17223f63d3773bc76095be51cb4e27d7100e8a16
parent4084c9e30339676a7bea9cca1496101f0b191a3f
[CodeGenCXX] Emit strip.invariant.group with -fstrict-vtable-pointers

Summary:
Emmiting new intrinsic that strips invariant.groups to make
devirtulization sound, as described in RFC: Devirtualization v2.

Reviewers: rjmccall, rsmith, amharc, kuhar

Subscribers: llvm-commits, cfe-commits

Differential Revision: https://reviews.llvm.org/D47299

Co-authored-by: Krzysztof Pszeniczny <krzysztof.pszeniczny@gmail.com>
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@336137 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/AST/DeclCXX.h
include/clang/AST/Type.h
lib/AST/Type.cpp
lib/CodeGen/CGExpr.cpp
lib/CodeGen/CGExprScalar.cpp
test/CodeGenCXX/strict-vtable-pointers.cpp