don't use #pragma mark, it isn't portable.
[clang.git] / include / clang / StaticAnalyzer / EntoSA / PathSensitive / SummaryManager.h
blobed878515988a869f49ea5fb65bf52af8baacd15c
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.
13 //===----------------------------------------------------------------------===//
15 #ifndef LLVM_CLANG_GR_SUMMARY
16 #define LLVM_CLANG_GR_SUMMARY
18 #include "llvm/ADT/FoldingSet.h"
19 #include "llvm/Support/Allocator.h"
21 namespace clang {
23 namespace ento {
25 namespace summMgr {
28 /* Key kinds:
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
41 class SummaryKey {
45 } // end namespace clang::summMgr
47 class SummaryManagerImpl {
52 template <typename T>
53 class SummaryManager : SummaryManagerImpl {
57 } // end GR namespace
59 } // end clang namespace
61 #endif