diff options
author | Davide Italiano <davide@freebsd.org> | 2019-08-12 20:03:19 +0000 |
---|---|---|
committer | Davide Italiano <davide@freebsd.org> | 2019-08-12 20:03:19 +0000 |
commit | 36f13e49127e56d6db4aeb76c0bbfacab1988157 (patch) | |
tree | 30444a46b609ed4b3055d0b4059fbd1fcfa6d454 /lldb/source/Expression/Materializer.cpp | |
parent | d2e493c3378b4b61e16109c67568f5d642f3c3a1 (diff) | |
download | llvm-36f13e49127e56d6db4aeb76c0bbfacab1988157.zip llvm-36f13e49127e56d6db4aeb76c0bbfacab1988157.tar.gz llvm-36f13e49127e56d6db4aeb76c0bbfacab1988157.tar.bz2 |
[Symbol] GetTypeBitAlign() should return None in case of failure.
Summary:
And not `zero`. This is the last API needed to be converted to
an Optional<T>.
Reviewers: xiaobai, compnerd
Subscribers: lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D66093
llvm-svn: 368614
Diffstat (limited to 'lldb/source/Expression/Materializer.cpp')
-rw-r--r-- | lldb/source/Expression/Materializer.cpp | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/lldb/source/Expression/Materializer.cpp b/lldb/source/Expression/Materializer.cpp index 64dffa3..c20422a 100644 --- a/lldb/source/Expression/Materializer.cpp +++ b/lldb/source/Expression/Materializer.cpp @@ -530,12 +530,15 @@ public: return; } - size_t bit_align = + llvm::Optional<size_t> opt_bit_align = m_variable_sp->GetType()->GetLayoutCompilerType().GetTypeBitAlign(); - size_t byte_align = (bit_align + 7) / 8; + if (!opt_bit_align) { + err.SetErrorStringWithFormat("can't get the type alignment for %s", + m_variable_sp->GetName().AsCString()); + return; + } - if (!byte_align) - byte_align = 1; + size_t byte_align = (*opt_bit_align + 7) / 8; Status alloc_error; const bool zero_memory = false; @@ -788,11 +791,14 @@ public: err.SetErrorString("can't get size of type"); return; } - size_t bit_align = m_type.GetTypeBitAlign(); - size_t byte_align = (bit_align + 7) / 8; - if (!byte_align) - byte_align = 1; + llvm::Optional<size_t> opt_bit_align = m_type.GetTypeBitAlign(); + if (!opt_bit_align) { + err.SetErrorStringWithFormat("can't get the type alignment"); + return; + } + + size_t byte_align = (*opt_bit_align + 7) / 8; Status alloc_error; const bool zero_memory = true; |