1; analyzer.opt -- Options for the analyzer. 2 3; Copyright (C) 2019-2020 Free Software Foundation, Inc. 4; 5; This file is part of GCC. 6; 7; GCC is free software; you can redistribute it and/or modify it under 8; the terms of the GNU General Public License as published by the Free 9; Software Foundation; either version 3, or (at your option) any later 10; version. 11; 12; GCC is distributed in the hope that it will be useful, but WITHOUT ANY 13; WARRANTY; without even the implied warranty of MERCHANTABILITY or 14; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 15; for more details. 16; 17; You should have received a copy of the GNU General Public License 18; along with GCC; see the file COPYING3. If not see 19; <http://www.gnu.org/licenses/>. 20 21; See the GCC internals manual for a description of this file's format. 22 23; Please try to keep this file in ASCII collating order. 24 25-param=analyzer-bb-explosion-factor= 26Common Joined UInteger Var(param_analyzer_bb_explosion_factor) Init(5) Param 27The maximum number of 'after supernode' exploded nodes within the analyzer per supernode, before terminating analysis. 28 29-param=analyzer-max-enodes-per-program-point= 30Common Joined UInteger Var(param_analyzer_max_enodes_per_program_point) Init(8) Param 31The maximum number of exploded nodes per program point within the analyzer, before terminating analysis of that point. 32 33-param=analyzer-max-recursion-depth= 34Common Joined UInteger Var(param_analyzer_max_recursion_depth) Init(2) Param 35The maximum number of times a callsite can appear in a call stack within the analyzer, before terminating analysis of a call that would recurse deeper. 36 37-param=analyzer-min-snodes-for-call-summary= 38Common Joined UInteger Var(param_analyzer_min_snodes_for_call_summary) Init(10) Param 39The minimum number of supernodes within a function for the analyzer to consider summarizing its effects at call sites. 40 41Wanalyzer-double-fclose 42Common Var(warn_analyzer_double_fclose) Init(1) Warning 43Warn about code paths in which a stdio FILE can be closed more than once. 44 45Wanalyzer-double-free 46Common Var(warn_analyzer_double_free) Init(1) Warning 47Warn about code paths in which a pointer can be freed more than once. 48 49Wanalyzer-exposure-through-output-file 50Common Var(warn_analyzer_exposure_through_output_file) Init(1) Warning 51Warn about code paths in which sensitive data is written to a file. 52 53Wanalyzer-file-leak 54Common Var(warn_analyzer_file_leak) Init(1) Warning 55Warn about code paths in which a stdio FILE is not closed. 56 57Wanalyzer-free-of-non-heap 58Common Var(warn_analyzer_free_of_non_heap) Init(1) Warning 59Warn about code paths in which a non-heap pointer is freed. 60 61Wanalyzer-malloc-leak 62Common Var(warn_analyzer_malloc_leak) Init(1) Warning 63Warn about code paths in which a heap-allocated pointer leaks. 64 65Wanalyzer-possible-null-argument 66Common Var(warn_analyzer_possible_null_argument) Init(1) Warning 67Warn about code paths in which a possibly-NULL value is passed to a must-not-be-NULL function argument. 68 69Wanalyzer-possible-null-dereference 70Common Var(warn_analyzer_possible_null_dereference) Init(1) Warning 71Warn about code paths in which a possibly-NULL pointer is dereferenced. 72 73Wanalyzer-unsafe-call-within-signal-handler 74Common Var(warn_analyzer_unsafe_call_within_signal_handler) Init(1) Warning 75Warn about code paths in which an async-signal-unsafe function is called from a signal handler. 76 77Wanalyzer-null-argument 78Common Var(warn_analyzer_null_argument) Init(1) Warning 79Warn about code paths in which NULL is passed to a must-not-be-NULL function argument. 80 81Wanalyzer-null-dereference 82Common Var(warn_analyzer_null_dereference) Init(1) Warning 83Warn about code paths in which a NULL pointer is dereferenced. 84 85Wanalyzer-stale-setjmp-buffer 86Common Var(warn_analyzer_stale_setjmp_buffer) Init(1) Warning 87Warn about code paths in which a longjmp rewinds to a jmp_buf saved in a stack frame that has returned. 88 89Wanalyzer-tainted-array-index 90Common Var(warn_analyzer_tainted_array_index) Init(1) Warning 91Warn about code paths in which an unsanitized value is used as an array index. 92 93Wanalyzer-use-after-free 94Common Var(warn_analyzer_use_after_free) Init(1) Warning 95Warn about code paths in which a freed value is used. 96 97Wanalyzer-use-of-pointer-in-stale-stack-frame 98Common Var(warn_analyzer_use_of_pointer_in_stale_stack_frame) Init(1) Warning 99Warn about code paths in which a pointer to a stale stack frame is used. 100 101Wanalyzer-too-complex 102Common Var(warn_analyzer_too_complex) Init(0) Warning 103Warn if the code is too complicated for the analyzer to fully explore. 104 105fanalyzer-checker= 106Common Joined RejectNegative Var(flag_analyzer_checker) 107Restrict the analyzer to run just the named checker. 108 109fanalyzer-fine-grained 110Common Var(flag_analyzer_fine_grained) Init(0) 111Avoid combining multiple statements into one exploded edge. 112 113fanalyzer-show-duplicate-count 114Common Var(flag_analyzer_show_duplicate_count) Init(0) 115Issue a note when diagnostics are deduplicated. 116 117fanalyzer-state-purge 118Common Var(flag_analyzer_state_purge) Init(1) 119Purge unneeded state during analysis. 120 121fanalyzer-state-merge 122Common Var(flag_analyzer_state_merge) Init(1) 123Merge similar-enough states during analysis. 124 125fanalyzer-transitivity 126Common Var(flag_analyzer_transitivity) Init(0) 127Enable transitivity of constraints during analysis. 128 129fanalyzer-call-summaries 130Common Var(flag_analyzer_call_summaries) Init(0) 131Approximate the effect of function calls to simplify analysis. 132 133fanalyzer-verbose-edges 134Common Var(flag_analyzer_verbose_edges) Init(0) 135Emit more verbose descriptions of control flow in diagnostics. 136 137fanalyzer-verbose-state-changes 138Common Var(flag_analyzer_verbose_state_changes) Init(0) 139Emit more verbose descriptions of state changes in diagnostics. 140 141fanalyzer-verbosity= 142Common Joined UInteger Var(analyzer_verbosity) Init(2) 143Control which events are displayed in diagnostic paths. 144 145fdump-analyzer 146Common RejectNegative Var(flag_dump_analyzer) 147Dump various analyzer internals to SRCFILE.analyzer.txt. 148 149fdump-analyzer-stderr 150Common RejectNegative Var(flag_dump_analyzer_stderr) 151Dump various analyzer internals to stderr. 152 153fdump-analyzer-callgraph 154Common RejectNegative Var(flag_dump_analyzer_callgraph) 155Dump analyzer-specific call graph information to a SRCFILE.callgraph.dot file. 156 157fdump-analyzer-exploded-graph 158Common RejectNegative Var(flag_dump_analyzer_exploded_graph) 159Dump the analyzer exploded graph to a SRCFILE.eg.dot file. 160 161fdump-analyzer-exploded-nodes 162Common RejectNegative Var(flag_dump_analyzer_exploded_nodes) 163Emit diagnostics showing the location of nodes in the exploded graph. 164 165fdump-analyzer-exploded-nodes-2 166Common RejectNegative Var(flag_dump_analyzer_exploded_nodes_2) 167Dump a textual representation of the exploded graph to SRCFILE.eg.txt. 168 169fdump-analyzer-exploded-nodes-3 170Common RejectNegative Var(flag_dump_analyzer_exploded_nodes_3) 171Dump a textual representation of the exploded graph to SRCFILE.eg-ID.txt. 172 173fdump-analyzer-state-purge 174Common RejectNegative Var(flag_dump_analyzer_state_purge) 175Dump state-purging information to a SRCFILE.state-purge.dot file. 176 177fdump-analyzer-supergraph 178Common RejectNegative Var(flag_dump_analyzer_supergraph) 179Dump the analyzer supergraph to a SRCFILE.supergraph.dot file. 180 181; This comment is to ensure we retain the blank line above. 182