| Index: src/IceInst.cpp
|
| diff --git a/src/IceInst.cpp b/src/IceInst.cpp
|
| index f9cfdddf60c13b41771fd4a9fa80dd6d46edd2db..3a07b52e4f97a755a6249f0ac1e1691332483941 100644
|
| --- a/src/IceInst.cpp
|
| +++ b/src/IceInst.cpp
|
| @@ -1094,9 +1094,15 @@ bool checkForRedundantAssign(const Variable *Dest, const Operand *Source) {
|
| // upper 32 bits of rax. We need to recognize and preserve these.
|
| return true;
|
| }
|
| - if (!Dest->hasReg() && !SrcVar->hasReg() &&
|
| - Dest->getStackOffset() == SrcVar->getStackOffset())
|
| + if (!Dest->hasReg() && !SrcVar->hasReg()) {
|
| + if (!Dest->hasStackOffset() || !SrcVar->hasStackOffset()) {
|
| + return false;
|
| + }
|
| + if (Dest->getStackOffset() != SrcVar->getStackOffset()) {
|
| + return false;
|
| + }
|
| return true;
|
| + }
|
| return false;
|
| }
|
|
|
|
|