Skip to content

Commit feacb72

Browse files
committed
[lldb] Override GetDereferencedType for TypeSystemSwift
1 parent e612892 commit feacb72

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

lldb/source/Plugins/TypeSystem/Swift/TypeSystemSwift.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
#include "Plugins/LanguageRuntime/Swift/SwiftLanguageRuntime.h"
1717
#include "lldb/Core/PluginManager.h"
1818
#include "lldb/Symbol/CompileUnit.h"
19+
#include "llvm/Support/Error.h"
1920
#include <lldb/lldb-enumerations.h>
2021
#include <llvm/ADT/StringRef.h>
2122

@@ -201,6 +202,13 @@ bool TypeSystemSwift::GetPtrAuthAddressDiversity(
201202
return false;
202203
}
203204

205+
llvm::Expected<CompilerType> TypeSystemSwift::GetDereferencedType(
206+
lldb::opaque_compiler_type_t type, ExecutionContext *exe_ctx,
207+
std::string &deref_name, uint32_t &deref_byte_size,
208+
int32_t &deref_byte_offset, ValueObject *valobj, uint64_t &language_flags) {
209+
return llvm::createStringError("Swift types cannot be dereferenced");
210+
}
211+
204212
namespace llvm {
205213
llvm::raw_ostream &
206214
operator<<(llvm::raw_ostream &os,

lldb/source/Plugins/TypeSystem/Swift/TypeSystemSwift.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -347,6 +347,12 @@ class TypeSystemSwift : public TypeSystem {
347347
unsigned GetPtrAuthDiscriminator(lldb::opaque_compiler_type_t type) override;
348348
bool GetPtrAuthAddressDiversity(lldb::opaque_compiler_type_t type) override;
349349

350+
llvm::Expected<CompilerType>
351+
GetDereferencedType(lldb::opaque_compiler_type_t type,
352+
ExecutionContext *exe_ctx, std::string &deref_name,
353+
uint32_t &deref_byte_size, int32_t &deref_byte_offset,
354+
ValueObject *valobj, uint64_t &language_flags) override;
355+
350356
/// \}
351357
protected:
352358
/// Used in the logs.

0 commit comments

Comments
 (0)