Skip to content

Commit 91cb471

Browse files
committed
Initialize fields of TypeRecord subclasses
Detected by msan with: -Xclang -enable-noundef-analysis -mllvm -msan-eager-checks=1 Differential Revision: https://reviews.llvm.org/D116829
1 parent 669eb60 commit 91cb471

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

llvm/include/llvm/DebugInfo/CodeView/TypeRecord.h

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,8 @@ class MemberPointerInfo {
111111
}
112112

113113
TypeIndex ContainingType;
114-
PointerToMemberRepresentation Representation;
114+
PointerToMemberRepresentation Representation =
115+
PointerToMemberRepresentation::Unknown;
115116
};
116117

117118
class TypeRecord {
@@ -160,8 +161,8 @@ class ProcedureRecord : public TypeRecord {
160161
TypeIndex getArgumentList() const { return ArgumentList; }
161162

162163
TypeIndex ReturnType;
163-
CallingConvention CallConv;
164-
FunctionOptions Options;
164+
CallingConvention CallConv = CallingConvention::NearC;
165+
FunctionOptions Options = FunctionOptions::None;
165166
uint16_t ParameterCount = 0;
166167
TypeIndex ArgumentList;
167168
};
@@ -194,8 +195,8 @@ class MemberFunctionRecord : public TypeRecord {
194195
TypeIndex ReturnType;
195196
TypeIndex ClassType;
196197
TypeIndex ThisType;
197-
CallingConvention CallConv;
198-
FunctionOptions Options;
198+
CallingConvention CallConv = CallingConvention::NearC;
199+
FunctionOptions Options = FunctionOptions::None;
199200
uint16_t ParameterCount = 0;
200201
TypeIndex ArgumentList;
201202
int32_t ThisPointerAdjustment = 0;
@@ -209,7 +210,7 @@ class LabelRecord : public TypeRecord {
209210

210211
LabelRecord(LabelType Mode) : TypeRecord(TypeRecordKind::Label), Mode(Mode) {}
211212

212-
LabelType Mode;
213+
LabelType Mode = LabelType::Near;
213214
};
214215

215216
// LF_MFUNC_ID
@@ -454,7 +455,7 @@ class TagRecord : public TypeRecord {
454455
StringRef getUniqueName() const { return UniqueName; }
455456

456457
uint16_t MemberCount = 0;
457-
ClassOptions Options;
458+
ClassOptions Options = ClassOptions::None;
458459
TypeIndex FieldList;
459460
StringRef Name;
460461
StringRef UniqueName;
@@ -585,7 +586,7 @@ class TypeServer2Record : public TypeRecord {
585586
uint32_t getAge() const { return Age; }
586587
StringRef getName() const { return Name; }
587588

588-
GUID Guid;
589+
GUID Guid = {};
589590
uint32_t Age = 0;
590591
StringRef Name;
591592
};

0 commit comments

Comments
 (0)