[PATCH] D122405: [llvm] Initialize and move UseUpRegs outside of `union` MemOp struct.
Alexander Belyaev via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Mar 24 08:32:00 PDT 2022
pifon2a created this revision.
Herald added subscribers: pengfei, hiraditya.
Herald added a project: All.
pifon2a requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.
Asan complained about uninitialized bool
`invalid-bool-load`
llvm/lib/Target/X86/AsmParser/X86Operand.h:389:12: runtime error: load
of value 171, which is not a valid value for type 'bool'
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D122405
Files:
llvm/lib/Target/X86/AsmParser/X86Operand.h
Index: llvm/lib/Target/X86/AsmParser/X86Operand.h
===================================================================
--- llvm/lib/Target/X86/AsmParser/X86Operand.h
+++ llvm/lib/Target/X86/AsmParser/X86Operand.h
@@ -37,6 +37,10 @@
void *OpDecl;
bool AddressOf;
+ /// This used for inline asm which may specify base reg and index reg for
+ /// MemOp. e.g. ARR[eax + ecx*4], so no extra reg can be used for MemOp.
+ bool UseUpRegs = false;
+
struct TokOp {
const char *Data;
unsigned Length;
@@ -68,10 +72,6 @@
/// If the memory operand is unsized and there are multiple instruction
/// matches, prefer the one with this size.
unsigned FrontendSize;
-
- /// This used for inline asm which may specify base reg and index reg for
- /// MemOp. e.g. ARR[eax + ecx*4], so no extra reg can be used for MemOp.
- bool UseUpRegs;
};
union {
@@ -384,9 +384,7 @@
return isAbsMem() && Mem.ModeSize == 16;
}
- bool isMemUseUpRegs() const override {
- return Mem.UseUpRegs;
- }
+ bool isMemUseUpRegs() const override { return UseUpRegs; }
bool isSrcIdx() const {
return !getMemIndexReg() && getMemScale() == 1 &&
@@ -685,7 +683,7 @@
Res->Mem.Size = Size;
Res->Mem.ModeSize = ModeSize;
Res->Mem.FrontendSize = FrontendSize;
- Res->Mem.UseUpRegs = UseUpRegs;
+ Res->UseUpRegs = UseUpRegs;
Res->SymName = SymName;
Res->OpDecl = OpDecl;
Res->AddressOf = false;
@@ -718,7 +716,7 @@
Res->Mem.Size = Size;
Res->Mem.ModeSize = ModeSize;
Res->Mem.FrontendSize = FrontendSize;
- Res->Mem.UseUpRegs = UseUpRegs;
+ Res->UseUpRegs = UseUpRegs;
Res->SymName = SymName;
Res->OpDecl = OpDecl;
Res->AddressOf = false;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D122405.417938.patch
Type: text/x-patch
Size: 1775 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220324/c102b980/attachment.bin>
More information about the llvm-commits
mailing list