1218887Sdim//== SummaryManager.h - Generic handling of function summaries --*- C++ -*--==// 2218887Sdim// 3218887Sdim// The LLVM Compiler Infrastructure 4218887Sdim// 5218887Sdim// This file is distributed under the University of Illinois Open Source 6218887Sdim// License. See LICENSE.TXT for details. 7218887Sdim// 8218887Sdim//===----------------------------------------------------------------------===// 9218887Sdim// 10218887Sdim// This file defines SummaryManager and related classes, which provides 11218887Sdim// a generic mechanism for managing function summaries. 12218887Sdim// 13218887Sdim//===----------------------------------------------------------------------===// 14218887Sdim 15218887Sdim#ifndef LLVM_CLANG_GR_SUMMARY 16218887Sdim#define LLVM_CLANG_GR_SUMMARY 17218887Sdim 18218887Sdim#include "llvm/ADT/FoldingSet.h" 19218887Sdim#include "llvm/Support/Allocator.h" 20218887Sdim 21218887Sdimnamespace clang { 22218887Sdim 23218887Sdimnamespace ento { 24218887Sdim 25218887Sdimnamespace summMgr { 26218887Sdim 27218887Sdim 28218887Sdim/* Key kinds: 29218887Sdim 30218887Sdim - C functions 31218887Sdim - C++ functions (name + parameter types) 32218887Sdim - ObjC methods: 33218887Sdim - Class, selector (class method) 34218887Sdim - Class, selector (instance method) 35218887Sdim - Category, selector (instance method) 36218887Sdim - Protocol, selector (instance method) 37218887Sdim - C++ methods 38218887Sdim - Class, function name + parameter types + const 39218887Sdim */ 40218887Sdim 41218887Sdimclass SummaryKey { 42218887Sdim 43218887Sdim}; 44218887Sdim 45218887Sdim} // end namespace clang::summMgr 46218887Sdim 47218887Sdimclass SummaryManagerImpl { 48218887Sdim 49218887Sdim}; 50218887Sdim 51218887Sdim 52218887Sdimtemplate <typename T> 53218887Sdimclass SummaryManager : SummaryManagerImpl { 54218887Sdim 55218887Sdim}; 56218887Sdim 57218887Sdim} // end GR namespace 58218887Sdim 59218887Sdim} // end clang namespace 60218887Sdim 61218887Sdim#endif 62