Lines Matching refs:cfi
22 To enable Clang's available CFI schemes, use the flag ``-fsanitize=cfi``.
23 You can also enable a subset of available :ref:`schemes <cfi-schemes>`.
38 The ``-fsanitize=cfi-{vcall,nvcall,derived-cast,unrelated-cast}`` flags
45 <cfi-cross-dso>` exists that does not require classes to have hidden LTO
57 - ``-fsanitize=cfi-cast-strict``: Enables :ref:`strict cast checks
58 <cfi-strictness>`.
59 - ``-fsanitize=cfi-derived-cast``: Base-to-derived cast to the wrong
61 - ``-fsanitize=cfi-unrelated-cast``: Cast from ``void*`` or another
63 - ``-fsanitize=cfi-nvcall``: Non-virtual call via an object whose vptr is of
65 - ``-fsanitize=cfi-vcall``: Virtual call via an object whose vptr is of the
67 - ``-fsanitize=cfi-icall``: Indirect call of a function with wrong dynamic
69 - ``-fsanitize=cfi-mfcall``: Indirect call via a member function pointer with
72 You can use ``-fsanitize=cfi`` to enable all the schemes and use
75 ``-fsanitize=cfi -fno-sanitize=cfi-nvcall,cfi-icall``
107 This CFI scheme can be enabled on its own using ``-fsanitize=cfi-vcall``.
111 of :ref:`ignored <cfi-ignorelist>` types or types with public :doc:`LTO
140 ``-fsanitize=cfi-derived-cast``), and bad casts from a pointer of
142 ``-fsanitize=cfi-unrelated-cast``).
154 functions may be :ref:`ignored <cfi-ignorelist>`.
158 of :ref:`ignored <cfi-ignorelist>` types or types with public :doc:`LTO
170 ``-fsanitize=cfi-nvcall``.
174 of :ref:`ignored <cfi-ignorelist>` types or types with public :doc:`LTO
193 default. It can be disabled with ``-fsanitize=cfi-cast-strict``.
201 using ``-fsanitize=cfi-icall``.
204 than calls in :ref:`ignored <cfi-ignorelist>` functions, must call a
205 function which was either compiled with ``-fsanitize=cfi-icall`` enabled,
207 ``-fsanitize=cfi-icall``.
209 If a function in a translation unit compiled with ``-fsanitize=cfi-icall``
210 takes the address of a function not compiled with ``-fsanitize=cfi-icall``,
212 unit not compiled with ``-fsanitize=cfi-icall``. This is technically a
215 Each translation unit compiled with ``-fsanitize=cfi-icall`` must be
218 ``-fsanitize=cfi-icall``.
223 ``-fsanitize-cfi-icall-generalize-pointers``
226 Mismatched pointer types are a common cause of cfi-icall check failures.
227 Translation units compiled with the ``-fsanitize-cfi-icall-generalize-pointers``
229 applied across all functions compiled with ``-fsanitize=cfi-icall``.
236 ``-fsanitize-cfi-icall-generalize-pointers`` is not compatible with
237 ``-fsanitize-cfi-cross-dso``.
241 ``-fsanitize-cfi-canonical-jump-tables``
248 was not compiled with ``-fsanitize=cfi-icall`` to take a CFI-valid address
270 with the flag ``-fno-sanitize-cfi-canonical-jump-tables``. When the jump
281 ``-fsanitize=cfi-icall`` to take a function address that is valid
288 ``-fsanitize=cfi-icall`` and ``-fsanitize=function``
294 to find bugs in local development builds, whereas ``-fsanitize=cfi-icall``
301 programs, whereas ``-fsanitize=cfi-icall`` can protect both C and C++ programs.
318 ``-fsanitize=cfi-mfcall``.
330 of :ref:`ignored <cfi-ignorelist>` types or types with public :doc:`LTO
357 [cfi-unrelated-cast]
360 [cfi-vcall|cfi-nvcall|cfi-icall]
369 Use **-f[no-]sanitize-cfi-cross-dso** to enable the cross-DSO control