1 //== SummaryManager.h - Generic handling of function summaries --*- C++ -*--==// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 // 9 // This file defines SummaryManager and related classes, which provides 10 // a generic mechanism for managing function summaries. 11 // 12 //===----------------------------------------------------------------------===// 13 14 #ifndef LLVM_CLANG_GR_SUMMARY 15 #define LLVM_CLANG_GR_SUMMARY 16 17 namespace clang { 18 19 namespace ento { 20 21 namespace summMgr { 22 23 24 /* Key kinds: 25 26 - C functions 27 - C++ functions (name + parameter types) 28 - ObjC methods: 29 - Class, selector (class method) 30 - Class, selector (instance method) 31 - Category, selector (instance method) 32 - Protocol, selector (instance method) 33 - C++ methods 34 - Class, function name + parameter types + const 35 */ 36 37 class SummaryKey { 38 39 }; 40 41 } // end namespace clang::summMgr 42 43 class SummaryManagerImpl { 44 45 }; 46 47 48 template <typename T> 49 class SummaryManager : SummaryManagerImpl { 50 51 }; 52 53 } // end GR namespace 54 55 } // end clang namespace 56 57 #endif 58