| 1 | //===-- nsan_flags.inc ------------------------------------------*- C++ -*-===// |
| 2 | // |
| 3 | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| 4 | // See https://llvm.org/LICENSE.txt for license information. |
| 5 | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| 6 | // |
| 7 | //===----------------------------------------------------------------------===// |
| 8 | // |
| 9 | // NSan runtime flags. |
| 10 | // |
| 11 | //===----------------------------------------------------------------------===// |
| 12 | #ifndef NSAN_FLAG |
| 13 | #error "Define NSAN_FLAG prior to including this file!" |
| 14 | #endif |
| 15 | |
| 16 | // NSAN_FLAG(Type, Name, DefaultValue, Description) |
| 17 | // See COMMON_FLAG in sanitizer_flags.inc for more details. |
| 18 | |
| 19 | NSAN_FLAG(bool, halt_on_error, true, "If true, halt after the first error." ) |
| 20 | NSAN_FLAG(bool, resume_after_warning, true, |
| 21 | "If true, we resume resume the computation from the original " |
| 22 | "application floating-point value after a warning. If false, " |
| 23 | "computations continue with the shadow value." ) |
| 24 | NSAN_FLAG(const char *, suppressions, "" , "Suppressions file name." ) |
| 25 | NSAN_FLAG(bool, resume_after_suppression, true, |
| 26 | "If true, a suppression will also resume the computation from the FT" |
| 27 | " domain. If false, output is suppressed but the shadow value is" |
| 28 | " retained." ) |
| 29 | // FIXME: should this be specified in units of epsilon instead? |
| 30 | NSAN_FLAG(int, log2_max_relative_error, 19, |
| 31 | "Log2 maximum admissible relative error, e.g. 19 means max relative " |
| 32 | "error of 1/2^19 ~= 0.000002." ) |
| 33 | NSAN_FLAG(int, log2_absolute_error_threshold, 32, |
| 34 | "Log2 maximum admissible absolute error. Any numbers closer than " |
| 35 | "1/2^n are considered to be the same." ) |
| 36 | NSAN_FLAG(bool, disable_warnings, false, |
| 37 | "If true, disable warning printing. This is useful to only compute " |
| 38 | "stats." ) |
| 39 | NSAN_FLAG(bool, enable_check_stats, false, |
| 40 | "If true, compute check stats, i.e. for each line, the number of " |
| 41 | "times a check was performed on this line." ) |
| 42 | NSAN_FLAG(bool, enable_warning_stats, false, |
| 43 | "If true, compute warning stats, i.e. for each line, the number of " |
| 44 | "times a warning was emitted for this line." ) |
| 45 | NSAN_FLAG(bool, enable_loadtracking_stats, false, |
| 46 | "If true, compute load tracking stats, i.e. for each load from " |
| 47 | "memory, the number of times nsan resumed from the original value " |
| 48 | "due to invalid or unknown types." ) |
| 49 | NSAN_FLAG(bool, poison_in_free, true, "" ) |
| 50 | NSAN_FLAG(bool, print_stats_on_exit, false, "If true, print stats on exit." ) |
| 51 | NSAN_FLAG(bool, check_nan, false, |
| 52 | "If true, check the floating-point number is nan" ) |
| 53 | NSAN_FLAG(bool, check_cmp, true, |
| 54 | "If true, emit a warning for a fcmp instruction whose " |
| 55 | "corresponding shadow fcmp result differs." ) |
| 56 | |