[PATCH] D32378: Insert invariant.group.barrier for pointers comparsons

Piotr Padlewski via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Apr 21 14:52:08 PDT 2017


Prazek created this revision.

This code was wrongly devirtualized before:

  A* a = new A;
  a->foo();
  A* b = new(a) B;
  
  if (a == b)
    b->foo();

Now we insert barrier before comparing dynamic pointers.


https://reviews.llvm.org/D32378

Files:
  lib/CodeGen/CGExprScalar.cpp
  test/CodeGenCXX/strict-vtable-pointers.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D32378.96241.patch
Type: text/x-patch
Size: 3936 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20170421/27f5abd3/attachment.bin>


More information about the cfe-commits mailing list