|
12 | 12 | #include "lldb/Core/dwarf.h" |
13 | 13 | #include "lldb/lldb-defines.h" |
14 | 14 | #include "lldb/lldb-enumerations.h" |
| 15 | +#include "lldb/lldb-private-enumerations.h" |
15 | 16 |
|
16 | 17 | namespace lldb_private { |
17 | 18 |
|
18 | 19 | class ClangASTMetadata { |
19 | 20 | public: |
20 | 21 | ClangASTMetadata() |
21 | 22 | : m_user_id(0), m_union_is_user_id(false), m_union_is_isa_ptr(false), |
22 | | - m_has_object_ptr(false), m_is_self(false), m_is_dynamic_cxx(true), |
23 | | - m_is_forcefully_completed(false) {} |
| 23 | + m_has_object_ptr(false), m_is_self(false), |
| 24 | + m_is_forcefully_completed(false) { |
| 25 | + SetIsDynamicCXXType(std::nullopt); |
| 26 | + } |
24 | 27 |
|
25 | | - bool GetIsDynamicCXXType() const { return m_is_dynamic_cxx; } |
| 28 | + std::optional<bool> GetIsDynamicCXXType() const; |
26 | 29 |
|
27 | | - void SetIsDynamicCXXType(bool b) { m_is_dynamic_cxx = b; } |
| 30 | + void SetIsDynamicCXXType(std::optional<bool> b); |
28 | 31 |
|
29 | 32 | void SetUserID(lldb::user_id_t user_id) { |
30 | 33 | m_user_id = user_id; |
@@ -101,8 +104,8 @@ class ClangASTMetadata { |
101 | 104 | uint64_t m_isa_ptr; |
102 | 105 | }; |
103 | 106 |
|
104 | | - bool m_union_is_user_id : 1, m_union_is_isa_ptr : 1, m_has_object_ptr : 1, |
105 | | - m_is_self : 1, m_is_dynamic_cxx : 1, m_is_forcefully_completed : 1; |
| 107 | + unsigned m_union_is_user_id : 1, m_union_is_isa_ptr : 1, m_has_object_ptr : 1, |
| 108 | + m_is_self : 1, m_is_dynamic_cxx : 2, m_is_forcefully_completed : 1; |
106 | 109 | }; |
107 | 110 |
|
108 | 111 | } // namespace lldb_private |
|
0 commit comments