1 //
2 //  TypeSystem.cpp
3 //  lldb
4 //
5 //  Created by Ryan Brown on 3/29/15.
6 //
7 //
8 
9 #include "lldb/Symbol/TypeSystem.h"
10 
11 #include "lldb/Core/PluginManager.h"
12 #include "lldb/Symbol/CompilerType.h"
13 
14 using namespace lldb_private;
15 
16 TypeSystem::TypeSystem(LLVMCastKind kind) :
17     m_kind (kind),
18     m_sym_file (nullptr)
19 {
20 }
21 
22 TypeSystem::~TypeSystem()
23 {
24 }
25 
26 lldb::TypeSystemSP
27 TypeSystem::CreateInstance (lldb::LanguageType language, const lldb_private::ArchSpec &arch)
28 {
29     uint32_t i = 0;
30     TypeSystemCreateInstance create_callback;
31     while ((create_callback = PluginManager::GetTypeSystemCreateCallbackAtIndex (i++)) != nullptr)
32     {
33         lldb::TypeSystemSP type_system_sp = create_callback(language, arch);
34         if (type_system_sp)
35             return type_system_sp;
36     }
37 
38     return lldb::TypeSystemSP();
39 }
40 
41 CompilerType
42 TypeSystem::GetLValueReferenceType (lldb::opaque_compiler_type_t type)
43 {
44     return CompilerType();
45 }
46 
47 CompilerType
48 TypeSystem::GetRValueReferenceType (lldb::opaque_compiler_type_t type)
49 {
50     return CompilerType();
51 }
52 
53 CompilerType
54 TypeSystem::AddConstModifier (lldb::opaque_compiler_type_t type)
55 {
56     return CompilerType();
57 }
58 
59 CompilerType
60 TypeSystem::AddVolatileModifier (lldb::opaque_compiler_type_t type)
61 {
62     return CompilerType();
63 }
64 
65 CompilerType
66 TypeSystem::AddRestrictModifier (lldb::opaque_compiler_type_t type)
67 {
68     return CompilerType();
69 }
70 
71 CompilerType
72 TypeSystem::CreateTypedef (lldb::opaque_compiler_type_t type, const char *name, const CompilerDeclContext &decl_ctx)
73 {
74     return CompilerType();
75 }
76 
77 CompilerType
78 TypeSystem::GetBuiltinTypeByName (const ConstString &name)
79 {
80     return CompilerType();
81 }
82 
83 CompilerType
84 TypeSystem::GetTypeForFormatters (void* type)
85 {
86     return CompilerType(this, type);
87 }
88 
89 LazyBool
90 TypeSystem::ShouldPrintAsOneLiner (void* type)
91 {
92     return eLazyBoolCalculate;
93 }
94