[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