[PATCH] D51905: Front-end of the implementation of the interleaving algorithm

Vlad Tsyrklevich via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Sep 11 17:02:02 PDT 2018


vlad.tsyrklevich added a comment.

This change causes all compiler-rt cfi tests to be UNSUPPORTED for me locally, do you have any idea why that might be? The lit changes don't make it immediately clear.



================
Comment at: clang/lib/CodeGen/CGVTables.cpp:1055
+    // When vtable interleaving is enabled, we don't emit type metadata for
+    // function pointers.
+    if (ABI->getEnableVTableInterleaving())
----------------
member function pointers*


================
Comment at: clang/lib/CodeGen/ItaniumCXXABI.cpp:939
 
+/// We should only interleave vtables when the module has the hidden
+/// LTO visibility, cfi-vcall is enabled and EnableVTableInterleaving
----------------
doxygen comments normally go in the corresponding header file.


================
Comment at: compiler-rt/test/cfi/CMakeLists.txt:62
+    add_cfi_test_suites(True False False False)
+	add_cfi_test_suites(True True False False)
+	add_cfi_test_suites(True False False True)
----------------
nit: spacing


================
Comment at: compiler-rt/test/cfi/cross-dso-diagnostic.cpp:7
 
-// UNSUPPORTED: windows-msvc
+// UNSUPPORTED: windows-msvc, interleaving
 // REQUIRES: cxxabi
----------------
Why? This test has to do with error printing to do with vcalls across DSOs, not cross-DSO CFI, so I wouldn't expect that this should be affected by this change.


================
Comment at: compiler-rt/test/cfi/lit.cfg:33
   dso = '-fsanitize-cfi-cross-dso -fvisibility=default '
+  interleave = '-Xclang -enable-vtable-interleaving -Wl,-plugin-opt,-enable-vtable-interleaving -Wl,-plugin-opt=save-temps -fno-sanitize=cfi-mfcall '
   if config.android:
----------------
Can get rid of at least save-temps here, do we need to pass -enable-vtable-interleaving to the linker?


https://reviews.llvm.org/D51905





More information about the cfe-commits mailing list