1 //== SummaryManager.h - Generic handling of function summaries --*- C++ -*--==// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 // 10 // This file defines SummaryManager and related classes, which provides 11 // a generic mechanism for managing function summaries. 12 // 13 //===----------------------------------------------------------------------===// 14 15 #ifndef LLVM_CLANG_GR_SUMMARY 16 #define LLVM_CLANG_GR_SUMMARY 17 18 #include "llvm/ADT/FoldingSet.h" 19 #include "llvm/Support/Allocator.h" 20 21 namespace clang { 22 23 namespace ento { 24 25 namespace summMgr { 26 27 28 /* Key kinds: 29 30 - C functions 31 - C++ functions (name + parameter types) 32 - ObjC methods: 33 - Class, selector (class method) 34 - Class, selector (instance method) 35 - Category, selector (instance method) 36 - Protocol, selector (instance method) 37 - C++ methods 38 - Class, function name + parameter types + const 39 */ 40 41 class SummaryKey { 42 43 }; 44 45 } // end namespace clang::summMgr 46 47 class SummaryManagerImpl { 48 49 }; 50 51 52 template <typename T> 53 class SummaryManager : SummaryManagerImpl { 54 55 }; 56 57 } // end GR namespace 58 59 } // end clang namespace 60 61 #endif 62