[CompilerType] Pass an ExecutionContextScope to GetTypeBitAlign.

llvm-svn: 368620
This commit is contained in:
Davide Italiano 2019-08-12 21:49:54 +00:00
parent 352d1b59c0
commit 7f9bbe0599
7 changed files with 12 additions and 9 deletions

View File

@ -709,7 +709,8 @@ public:
lldb::Format GetFormat(lldb::opaque_compiler_type_t type) override;
llvm::Optional<size_t>
GetTypeBitAlign(lldb::opaque_compiler_type_t type) override;
GetTypeBitAlign(lldb::opaque_compiler_type_t type,
ExecutionContextScope *exe_scope) override;
uint32_t GetNumChildren(lldb::opaque_compiler_type_t type,
bool omit_empty_base_classes,

View File

@ -257,7 +257,7 @@ public:
lldb::Format GetFormat() const;
llvm::Optional<size_t> GetTypeBitAlign() const;
llvm::Optional<size_t> GetTypeBitAlign(ExecutionContextScope *exe_scope) const;
uint32_t GetNumChildren(bool omit_empty_base_classes,
const ExecutionContext *exe_ctx) const;

View File

@ -387,7 +387,8 @@ public:
uint32_t &length) = 0;
virtual llvm::Optional<size_t>
GetTypeBitAlign(lldb::opaque_compiler_type_t type) = 0;
GetTypeBitAlign(lldb::opaque_compiler_type_t type,
ExecutionContextScope *exe_scope) = 0;
virtual CompilerType GetBasicTypeFromAST(lldb::BasicType basic_type) = 0;

View File

@ -531,7 +531,7 @@ public:
}
llvm::Optional<size_t> opt_bit_align =
m_variable_sp->GetType()->GetLayoutCompilerType().GetTypeBitAlign();
m_variable_sp->GetType()->GetLayoutCompilerType().GetTypeBitAlign(scope);
if (!opt_bit_align) {
err.SetErrorStringWithFormat("can't get the type alignment for %s",
m_variable_sp->GetName().AsCString());
@ -792,7 +792,7 @@ public:
return;
}
llvm::Optional<size_t> opt_bit_align = m_type.GetTypeBitAlign();
llvm::Optional<size_t> opt_bit_align = m_type.GetTypeBitAlign(exe_scope);
if (!opt_bit_align) {
err.SetErrorStringWithFormat("can't get the type alignment");
return;

View File

@ -1302,7 +1302,7 @@ bool IRForTarget::MaybeHandleVariable(Value *llvm_value_ptr) {
llvm::Optional<uint64_t> value_size = compiler_type.GetByteSize(nullptr);
if (!value_size)
return false;
llvm::Optional<size_t> opt_alignment = compiler_type.GetTypeBitAlign();
llvm::Optional<size_t> opt_alignment = compiler_type.GetTypeBitAlign(nullptr);
if (!opt_alignment)
return false;
lldb::offset_t value_alignment = (*opt_alignment + 7ull) / 8ull;

View File

@ -5088,7 +5088,8 @@ ClangASTContext::GetBitSize(lldb::opaque_compiler_type_t type,
}
llvm::Optional<size_t>
ClangASTContext::GetTypeBitAlign(lldb::opaque_compiler_type_t type) {
ClangASTContext::GetTypeBitAlign(lldb::opaque_compiler_type_t type,
ExecutionContextScope *exe_scope) {
if (GetCompleteType(type))
return getASTContext()->getTypeAlign(GetQualType(type));
return {};

View File

@ -503,9 +503,9 @@ CompilerType::GetByteSize(ExecutionContextScope *exe_scope) const {
return {};
}
llvm::Optional<size_t> CompilerType::GetTypeBitAlign() const {
llvm::Optional<size_t> CompilerType::GetTypeBitAlign(ExecutionContextScope *exe_scope) const {
if (IsValid())
return m_type_system->GetTypeBitAlign(m_type);
return m_type_system->GetTypeBitAlign(m_type, exe_scope);
return {};
}