diff options
Diffstat (limited to 'lldb/include')
-rw-r--r-- | lldb/include/lldb/Expression/ClangExpressionDeclMap.h | 10 | ||||
-rw-r--r-- | lldb/include/lldb/Expression/ClangExpressionVariable.h | 3 | ||||
-rw-r--r-- | lldb/include/lldb/Symbol/ClangASTContext.h | 9 |
3 files changed, 21 insertions, 1 deletions
diff --git a/lldb/include/lldb/Expression/ClangExpressionDeclMap.h b/lldb/include/lldb/Expression/ClangExpressionDeclMap.h index d3e641aee57..627827c3687 100644 --- a/lldb/include/lldb/Expression/ClangExpressionDeclMap.h +++ b/lldb/include/lldb/Expression/ClangExpressionDeclMap.h @@ -85,6 +85,16 @@ public: WillParse (ExecutionContext &exe_ctx); //------------------------------------------------------------------ + /// [Used by ClangExpressionParser] For each variable that had an unknown + /// type at the beginning of parsing, determine its final type now. + /// + /// @return + /// True on success; false otherwise. + //------------------------------------------------------------------ + bool + ResolveUnknownTypes(); + + //------------------------------------------------------------------ /// Disable the state needed for parsing and IR transformation. //------------------------------------------------------------------ void diff --git a/lldb/include/lldb/Expression/ClangExpressionVariable.h b/lldb/include/lldb/Expression/ClangExpressionVariable.h index 4c3263dbe9d..86c01290138 100644 --- a/lldb/include/lldb/Expression/ClangExpressionVariable.h +++ b/lldb/include/lldb/Expression/ClangExpressionVariable.h @@ -223,7 +223,8 @@ public: EVNeedsAllocation = 1 << 2, ///< Space for this variable has yet to be allocated in the target process EVIsFreezeDried = 1 << 3, ///< This variable's authoritative version is in m_frozen_sp (for example, for statically-computed results) EVNeedsFreezeDry = 1 << 4, ///< Copy from m_live_sp to m_frozen_sp during dematerialization - EVKeepInTarget = 1 << 5 ///< Keep the allocation after the expression is complete rather than freeze drying its contents and freeing it + EVKeepInTarget = 1 << 5, ///< Keep the allocation after the expression is complete rather than freeze drying its contents and freeing it + EVUnknownType = 1 << 6 ///< This is a symbol of unknown type, and the type must be resolved after parsing is complete }; uint16_t m_flags; // takes elements of Flags diff --git a/lldb/include/lldb/Symbol/ClangASTContext.h b/lldb/include/lldb/Symbol/ClangASTContext.h index b389de9c03d..337ea8186e0 100644 --- a/lldb/include/lldb/Symbol/ClangASTContext.h +++ b/lldb/include/lldb/Symbol/ClangASTContext.h @@ -159,6 +159,15 @@ public: lldb::clang_type_t GetBuiltInType_objc_Class(); + + static lldb::clang_type_t + GetUnknownAnyType(clang::ASTContext *ast); + + lldb::clang_type_t + GetUnknownAnyType() + { + return ClangASTContext::GetUnknownAnyType(getASTContext()); + } lldb::clang_type_t GetBuiltInType_objc_selector(); |