Line data Source code
1 : /* Selftest support for the analyzer.
2 : Copyright (C) 2019-2026 Free Software Foundation, Inc.
3 : Contributed by David Malcolm <dmalcolm@redhat.com>.
4 :
5 : This file is part of GCC.
6 :
7 : GCC is free software; you can redistribute it and/or modify it
8 : under the terms of the GNU General Public License as published by
9 : the Free Software Foundation; either version 3, or (at your option)
10 : any later version.
11 :
12 : GCC is distributed in the hope that it will be useful, but
13 : WITHOUT ANY WARRANTY; without even the implied warranty of
14 : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 : General Public License 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 : #include "analyzer/common.h"
22 :
23 : #include "stringpool.h"
24 :
25 : #include "analyzer/analyzer-selftests.h"
26 :
27 : #if CHECKING_P
28 :
29 : namespace ana {
30 :
31 : namespace selftest {
32 :
33 : /* Build a VAR_DECL named NAME of type TYPE, simulating a file-level
34 : static variable. */
35 :
36 : tree
37 356 : build_global_decl (const char *name, tree type)
38 : {
39 356 : tree decl = build_decl (UNKNOWN_LOCATION, VAR_DECL,
40 : get_identifier (name), type);
41 356 : TREE_STATIC (decl) = 1;
42 356 : return decl;
43 : }
44 :
45 : /* Run all analyzer-specific selftests. */
46 :
47 : void
48 4 : run_analyzer_selftests ()
49 : {
50 : #if ENABLE_ANALYZER
51 4 : analyzer_access_diagram_cc_tests ();
52 4 : analyzer_constraint_manager_cc_tests ();
53 4 : analyzer_function_set_cc_tests ();
54 4 : analyzer_program_point_cc_tests ();
55 4 : analyzer_program_state_cc_tests ();
56 4 : analyzer_ranges_cc_tests ();
57 4 : analyzer_region_model_cc_tests ();
58 4 : analyzer_sm_file_cc_tests ();
59 4 : analyzer_sm_signal_cc_tests ();
60 4 : analyzer_store_cc_tests ();
61 : #endif /* #if ENABLE_ANALYZER */
62 4 : }
63 :
64 : } /* end of namespace selftest. */
65 :
66 : } // namespace ana
67 :
68 : #endif /* #if CHECKING_P */
|