Line data Source code
1 : /* Sets of function names.
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 : #ifndef GCC_ANALYZER_FUNCTION_SET_H
22 : #define GCC_ANALYZER_FUNCTION_SET_H
23 :
24 : namespace ana {
25 :
26 : /* A set of names. */
27 :
28 : class function_set
29 : {
30 : public:
31 : /* Construct from a sorted array NAMES of size COUNT. */
32 78303 : function_set (const char * const *names, size_t count)
33 27759 : : m_names (names), m_count (count)
34 : {
35 : }
36 :
37 : bool contains_name_p (const char *name) const;
38 : bool contains_decl_p (tree fndecl) const;
39 :
40 : void assert_sorted () const;
41 : void assert_sane () const;
42 :
43 : private:
44 : const char * const *m_names; // must be sorted
45 : size_t m_count;
46 : };
47 :
48 : } // namespace ana
49 :
50 : #endif /* GCC_ANALYZER_FUNCTION_SET_H */
|