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