<html dir="ltr"><head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style title="owaParaStyle"><!--P {
MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
}
--></style>
</head>
<body ocsi="x">
<div dir="ltr"><font color="#000000" size="2" face="Tahoma">Hi llvm-commits members</font></div>
<div dir="ltr"><font size="2" face="tahoma"></font> </div>
<div dir="ltr"><font size="2" face="tahoma">
<div dir="ltr"><font size="2" face="Tahoma">when making replacement for GetElementPtr, I think inbounds factor is missed</font></div>
<div dir="ltr"><font size="2" face="Tahoma">so, I made a patch to consider inbounds factor as follows:</font></div>
<div dir="ltr"><font face="tahoma"></font> </div>
<div dir="ltr">Index: lib/VMCore/Constants.cpp<br>
===================================================================<br>
--- lib/VMCore/Constants.cpp (revision 125324)<br>
+++ lib/VMCore/Constants.cpp (working copy)<br>
@@ -2106,8 +2106,12 @@<br>
if (Val == From) Val = To;<br>
Indices.push_back(Val);<br>
}<br>
- Replacement = ConstantExpr::getGetElementPtr(Pointer,<br>
- &Indices[0], Indices.size());<br>
+ if(cast<GEPOperator>(this)->isInBounds())<br>
+ Replacement = ConstantExpr::getInBoundsGetElementPtr(Pointer,<br>
+ &Indices[0], Indices.size());<br>
+ else<br>
+ Replacement = ConstantExpr::getGetElementPtr(Pointer,<br>
+ &Indices[0], Indices.size());<br>
} else if (getOpcode() == Instruction::ExtractValue) {<br>
Constant *Agg = getOperand(0);<br>
if (Agg == From) Agg = To;<br>
</div>
<div dir="ltr">Please review the attached patch.<br>
</div>
<div dir="ltr"><font face="tahoma">Thank you,</font></div>
<div dir="ltr"><font face="tahoma">Jin-Gu Kang</font></div>
</font></div>
</body>
</html>