diff options
author | Kamil Rytarowski <n54@gmx.com> | 2017-06-12 00:28:14 +0000 |
---|---|---|
committer | Kamil Rytarowski <n54@gmx.com> | 2017-06-12 00:28:14 +0000 |
commit | dffec3d678db76752f6c2fb1f3b886751a3b1fbd (patch) | |
tree | dd74264d69a49d8eb0a5c2cf998dcc46fdf11e87 | |
parent | bfd5113ca1020054114602879daab4048574f8e5 (diff) | |
download | bcm5719-llvm-dffec3d678db76752f6c2fb1f3b886751a3b1fbd.tar.gz bcm5719-llvm-dffec3d678db76752f6c2fb1f3b886751a3b1fbd.zip |
Initialize SubArch in class Triple
Summary:
LLDB built with asan on NetBSD detected issues in the following code:
```
void ArchSpec::Clear() {
m_triple = llvm::Triple();
m_core = kCore_invalid;
m_byte_order = eByteOrderInvalid;
m_distribution_id.Clear();
m_flags = 0;
}
```
--- lldb/source/Core/ArchSpec.cpp
Runtime error messages:
/public/pkgsrc-tmp/wip/lldb-netbsd/work/.buildlink/include/llvm/ADT/Triple.h:44:7: runtime error: load of value 32639, which is not a valid value for type 'SubArchType'
/public/pkgsrc-tmp/wip/lldb-netbsd/work/.buildlink/include/llvm/ADT/Triple.h:44:7: runtime error: load of value 3200171710, which is not a valid value for type 'SubArchType'
/public/pkgsrc-tmp/wip/lldb-netbsd/work/.buildlink/include/llvm/ADT/Triple.h:44:7: runtime error: load of value 3200171710, which is not a valid value for type 'SubArchType'
Correct this issue with initialization of SubArch() in the class Triple constructor.
Sponsored by <The NetBSD Foundation>
Reviewers: chandlerc, zturner
Reviewed By: zturner
Subscribers: llvm-commits, zturner
Differential Revision: https://reviews.llvm.org/D33845
llvm-svn: 305178
-rw-r--r-- | llvm/include/llvm/ADT/Triple.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/include/llvm/ADT/Triple.h b/llvm/include/llvm/ADT/Triple.h index 07626982d28..26a991812a3 100644 --- a/llvm/include/llvm/ADT/Triple.h +++ b/llvm/include/llvm/ADT/Triple.h @@ -239,7 +239,9 @@ public: /// Default constructor is the same as an empty string and leaves all /// triple fields unknown. - Triple() : Data(), Arch(), Vendor(), OS(), Environment(), ObjectFormat() {} + Triple() + : Data(), Arch(), SubArch(), Vendor(), OS(), Environment(), + ObjectFormat() {} explicit Triple(const Twine &Str); Triple(const Twine &ArchStr, const Twine &VendorStr, const Twine &OSStr); |