mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 19:23:23 +01:00
MIRParser: Avoid reading uninitialized memory on generic vregs
If a vreg's bank is specified in the registers block and one of its defs or uses also specifies the bank, we end up checking that the RegBank is equal to diagnose conflicting banks. The problem comes up for generic vregs, where we weren't fully initializing the VRegInfo when parsing the registers block, so we'd end up comparing a null pointer to uninitialized memory. This fixes a non-deterministic failure when round tripping through MIR with generic vregs. llvm-svn: 318543
This commit is contained in:
parent
b6532d9c64
commit
5fe832bb72
@ -441,6 +441,7 @@ bool MIRParserImpl::parseRegisterInfo(PerFunctionMIParsingState &PFS,
|
|||||||
|
|
||||||
if (StringRef(VReg.Class.Value).equals("_")) {
|
if (StringRef(VReg.Class.Value).equals("_")) {
|
||||||
Info.Kind = VRegInfo::GENERIC;
|
Info.Kind = VRegInfo::GENERIC;
|
||||||
|
Info.D.RegBank = nullptr;
|
||||||
} else {
|
} else {
|
||||||
const auto *RC = getRegClass(MF, VReg.Class.Value);
|
const auto *RC = getRegClass(MF, VReg.Class.Value);
|
||||||
if (RC) {
|
if (RC) {
|
||||||
|
Loading…
Reference in New Issue
Block a user