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