Lines Matching +full:- +full:dllvm_enable_runtimes

21 detect application-specific issues within their own code.
33 .. code-block:: console
35 mkdir libcxx-build
36 cd libcxx-build
39 cmake -GNinja -S <monorepo-root>/runtimes \
40 -DCMAKE_C_COMPILER=clang \
41 -DCMAKE_CXX_COMPILER=clang++ \
42 -DLLVM_USE_SANITIZER="DataFlow" \
43 -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi"
65 --------
87 * ``discard`` -- To the extent that this function writes to (user-accessible)
89 satisfied for functions which do not write to user-accessible memory). Its
91 * ``functional`` -- Like ``discard``, except that the label of its return value
93 * ``custom`` -- Instead of calling the function, a custom wrapper ``__dfsw_F``
96 generally used for uninstrumentable functions which write to user-accessible
100 is of non-void return type a final argument of type ``dfsan_label *``
104 .. code-block:: c++
121 .. code-block:: none
127 # malloc only writes to its internal data structures, not user-accessible memory.
147 .. code-block:: none
155 -----------------
157 * ``-dfsan-abilist`` -- The additional ABI list files that control how shadow
159 * ``-dfsan-combine-pointer-labels-on-load`` -- Controls whether to include or
163 .. code-block:: c++
171 * ``-dfsan-combine-pointer-labels-on-store`` -- Controls whether to include or
175 .. code-block:: c++
183 * ``-dfsan-combine-offset-labels-on-gep`` -- Controls whether to propagate
186 .. code-block:: c++
193 * ``-dfsan-track-select-control-flow`` -- Controls whether to track the control
196 .. code-block:: c++
204 * ``-dfsan-event-callbacks`` -- An experimental feature that inserts callbacks for
210 .. code-block:: c++
217 * ``-dfsan-conditional-callbacks`` -- An experimental feature that inserts
225 This signature is the same when origin tracking is disabled - in this case
236 * ``-dfsan-reaches-function-callbacks`` -- An experimental feature that inserts
243 This signature is the same when origin tracking is disabled - in this case
258 * ``-dfsan-track-origins`` -- Controls how to track origins. When its value is
263 * ``-dfsan-instrument-with-call-threshold`` -- If a function being instrumented
265 inline checks (-1 means never use callbacks). Its default value is 3500.
268 ---------------------
270 * ``warn_unimplemented`` -- Whether to warn on unimplemented functions. Its
272 * ``strict_data_dependencies`` -- Whether to propagate labels only when there is
274 that the output of the comparison might be implicit data-dependent on the
277 * ``origin_history_size`` -- The limit of origin chain length. Non-positive values
279 * ``origin_history_per_stack_limit`` -- The limit of origin node's references count.
280 Non-positive values mean unlimited. Its default value is 20000.
281 * ``store_context_size`` -- The depth limit of origin tracking stack traces. Its
283 * ``zero_in_malloc`` -- Whether to zero shadow space of new allocated memory. Its
285 * ``zero_in_free`` --- Whether to zero shadow space of deallocated memory. Its
292 size overhead. Base labels are simply 8-bit unsigned integers that are
299 .. code-block:: c++
346 ``-mllvm -dfsan-track-origins=1``. For example,
348 .. code-block:: console
362 … % clang++ -fsanitize=dataflow -mllvm -dfsan-track-origins=1 -fno-omit-frame-pointer -g -O2 test.cc
367 #1 0x7f0083611bbc in __libc_start_main libc-start.c:285
371 #1 0x7f0083611bbc in __libc_start_main libc-start.c:285
373 By ``-mllvm -dfsan-track-origins=1`` DataFlowSanitizer collects only
376 slowdown and increases memory overhead by 1x. By ``-mllvm -dfsan-track-origins=2``