Changes in directory llvm/lib/CodeGen/SelectionDAG:

SelectionDAGISel.cpp updated: 1.448 -> 1.449
---
Log message:

Parameter attributes on invoke calls were being lost due to the wrong
attribute index being used.  Fix proposed by Anton Korobeynikov, who
asked me to implement and commit it for him.  This is PR1398: 
http://llvm.org/PR1398 .


---
Diffs of the changes:  (+6 -4)

 SelectionDAGISel.cpp |   10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)


Index: llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1.448 
llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1.449
--- llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1.448    Sun May  6 
15:14:21 2007
+++ llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp  Mon May  7 15:49:28 2007
@@ -2787,10 +2787,12 @@
     Value *Arg = I.getOperand(i);
     SDOperand ArgNode = getValue(Arg);
     Entry.Node = ArgNode; Entry.Ty = Arg->getType();
-    Entry.isSExt   = Attrs && Attrs->paramHasAttr(i, ParamAttr::SExt);
-    Entry.isZExt   = Attrs && Attrs->paramHasAttr(i, ParamAttr::ZExt);
-    Entry.isInReg  = Attrs && Attrs->paramHasAttr(i, ParamAttr::InReg);
-    Entry.isSRet   = Attrs && Attrs->paramHasAttr(i, ParamAttr::StructRet);
+
+    unsigned attrInd = i - OpIdx + 1;
+    Entry.isSExt  = Attrs && Attrs->paramHasAttr(attrInd, ParamAttr::SExt);
+    Entry.isZExt  = Attrs && Attrs->paramHasAttr(attrInd, ParamAttr::ZExt);
+    Entry.isInReg = Attrs && Attrs->paramHasAttr(attrInd, ParamAttr::InReg);
+    Entry.isSRet  = Attrs && Attrs->paramHasAttr(attrInd, 
ParamAttr::StructRet);
     Args.push_back(Entry);
   }
 



_______________________________________________
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

Reply via email to