[llvm] r317028 - [DWARF] Now that Optional is standard layout, put it into an union instead of splatting it.
Benjamin Kramer via llvm-commits
llvm-commits at lists.llvm.org
Tue Oct 31 12:40:03 PDT 2017
Author: d0k
Date: Tue Oct 31 12:40:03 2017
New Revision: 317028
URL: http://llvm.org/viewvc/llvm-project?rev=317028&view=rev
Log:
[DWARF] Now that Optional is standard layout, put it into an union instead of splatting it.
No functionality change intended.
Modified:
llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFAbbreviationDeclaration.h
llvm/trunk/lib/DebugInfo/DWARF/DWARFAbbreviationDeclaration.cpp
Modified: llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFAbbreviationDeclaration.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFAbbreviationDeclaration.h?rev=317028&r1=317027&r2=317028&view=diff
==============================================================================
--- llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFAbbreviationDeclaration.h (original)
+++ llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFAbbreviationDeclaration.h Tue Oct 31 12:40:03 2017
@@ -33,11 +33,8 @@ public:
assert(isImplicitConst());
}
AttributeSpec(dwarf::Attribute A, dwarf::Form F, Optional<uint8_t> ByteSize)
- : Attr(A), Form(F) {
+ : Attr(A), Form(F), ByteSize(ByteSize) {
assert(!isImplicitConst());
- this->ByteSize.HasByteSize = ByteSize.hasValue();
- if (this->ByteSize.HasByteSize)
- this->ByteSize.ByteSize = *ByteSize;
}
dwarf::Attribute Attr;
@@ -48,21 +45,17 @@ public:
/// attributes and as value for implicit_const ones, indicated by
/// Form == DW_FORM_implicit_const.
/// The following cases are distinguished:
- /// * Form != DW_FORM_implicit_const and HasByteSize is true:
+ /// * Form != DW_FORM_implicit_const and ByteSize has a value:
/// ByteSize contains the fixed size in bytes for the Form in this
/// object.
- /// * Form != DW_FORM_implicit_const and HasByteSize is false:
+ /// * Form != DW_FORM_implicit_const and ByteSize is None:
/// byte size of Form either varies according to the DWARFUnit
/// that it is contained in or the value size varies and must be
/// decoded from the debug information in order to determine its size.
/// * Form == DW_FORM_implicit_const:
/// Value contains value for the implicit_const attribute.
- struct ByteSizeStorage {
- bool HasByteSize;
- uint8_t ByteSize;
- };
union {
- ByteSizeStorage ByteSize;
+ Optional<uint8_t> ByteSize;
int64_t Value;
};
Modified: llvm/trunk/lib/DebugInfo/DWARF/DWARFAbbreviationDeclaration.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/DWARF/DWARFAbbreviationDeclaration.cpp?rev=317028&r1=317027&r2=317028&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/DWARF/DWARFAbbreviationDeclaration.cpp (original)
+++ llvm/trunk/lib/DebugInfo/DWARF/DWARFAbbreviationDeclaration.cpp Tue Oct 31 12:40:03 2017
@@ -214,8 +214,8 @@ Optional<int64_t> DWARFAbbreviationDecla
const DWARFUnit &U) const {
if (isImplicitConst())
return 0;
- if (ByteSize.HasByteSize)
- return ByteSize.ByteSize;
+ if (ByteSize)
+ return *ByteSize;
Optional<int64_t> S;
auto FixedByteSize =
DWARFFormValue::getFixedByteSize(Form, U.getFormParams());
More information about the llvm-commits
mailing list