1 1.1 mrg /* Sets of function names. 2 1.1.1.2 mrg Copyright (C) 2019-2022 Free Software Foundation, Inc. 3 1.1 mrg Contributed by David Malcolm <dmalcolm (at) redhat.com>. 4 1.1 mrg 5 1.1 mrg This file is part of GCC. 6 1.1 mrg 7 1.1 mrg GCC is free software; you can redistribute it and/or modify it 8 1.1 mrg under the terms of the GNU General Public License as published by 9 1.1 mrg the Free Software Foundation; either version 3, or (at your option) 10 1.1 mrg any later version. 11 1.1 mrg 12 1.1 mrg GCC is distributed in the hope that it will be useful, but 13 1.1 mrg WITHOUT ANY WARRANTY; without even the implied warranty of 14 1.1 mrg MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 1.1 mrg General Public License for more details. 16 1.1 mrg 17 1.1 mrg You should have received a copy of the GNU General Public License 18 1.1 mrg along with GCC; see the file COPYING3. If not see 19 1.1 mrg <http://www.gnu.org/licenses/>. */ 20 1.1 mrg 21 1.1 mrg #ifndef GCC_ANALYZER_FUNCTION_SET_H 22 1.1 mrg #define GCC_ANALYZER_FUNCTION_SET_H 23 1.1 mrg 24 1.1 mrg namespace ana { 25 1.1 mrg 26 1.1 mrg /* A set of names. */ 27 1.1 mrg 28 1.1 mrg class function_set 29 1.1 mrg { 30 1.1 mrg public: 31 1.1 mrg /* Construct from a sorted array NAMES of size COUNT. */ 32 1.1 mrg function_set (const char * const *names, size_t count) 33 1.1 mrg : m_names (names), m_count (count) 34 1.1 mrg { 35 1.1 mrg } 36 1.1 mrg 37 1.1 mrg bool contains_name_p (const char *name) const; 38 1.1 mrg bool contains_decl_p (tree fndecl) const; 39 1.1 mrg 40 1.1 mrg void assert_sorted () const; 41 1.1 mrg void assert_sane () const; 42 1.1 mrg 43 1.1 mrg private: 44 1.1 mrg const char * const *m_names; // must be sorted 45 1.1 mrg size_t m_count; 46 1.1 mrg }; 47 1.1 mrg 48 1.1 mrg } // namespace ana 49 1.1 mrg 50 1.1 mrg #endif /* GCC_ANALYZER_FUNCTION_SET_H */ 51