[PATCH] Implement Control Flow Integrity for virtual calls.

Peter Collingbourne peter at pcc.me.uk
Thu Feb 5 14:55:48 PST 2015


================
Comment at: docs/ControlFlowIntegrity.rst:3
@@ +2,3 @@
+Control Flow Integrity
+======================
+
----------------
jfb wrote:
> Could you add a section which contains links to publications on CFI, for the approaches that are implemented as well as ones that aren't but may be relevant.
Done.

================
Comment at: lib/AST/MicrosoftMangle.cpp:2574
@@ +2573,3 @@
+                                                       raw_ostream &Out) {
+  llvm_unreachable("Cannot mangle bitsets yet");
+}
----------------
pcc wrote:
> jfb wrote:
> > `report_fatal_error`
> Makes sense. I suppose you can contrive to get here with the Microsoft ABI.
Actually I don't think you can. The `mangleCXXVTableBitSet` function can only be reached from the Itanium-specific code that sets up a vtable call or constructs a vtable, or from `GenerateConstructionVTable`, which is only used by the code that creates VTTs, which is an Itanium-specific concept. I changed it anyway to be defensive.

http://reviews.llvm.org/D7424

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/






More information about the cfe-commits mailing list