Make output match actual condition tested. Thanks, Duncan.
[oota-llvm.git] / lib / VMCore / Function.cpp
index e39536680327b223a67e176a53c7f2ea452c12e5..dd781964a9174ad28bb215a4a1132fab8cf9352f 100644 (file)
@@ -90,17 +90,21 @@ std::string
 ParamAttrsList::getParamAttrsText(uint16_t Attrs) {
   std::string Result;
   if (Attrs & ParamAttr::ZExt)
-    Result += "zext ";
+    Result += "zeroext ";
   if (Attrs & ParamAttr::SExt)
-    Result += "sext ";
+    Result += "signext ";
   if (Attrs & ParamAttr::NoReturn)
     Result += "noreturn ";
   if (Attrs & ParamAttr::NoUnwind)
     Result += "nounwind ";
   if (Attrs & ParamAttr::InReg)
     Result += "inreg ";
+  if (Attrs & ParamAttr::NoAlias)
+    Result += "noalias ";
   if (Attrs & ParamAttr::StructRet)
     Result += "sret ";  
+  if (Attrs & ParamAttr::ByVal)
+    Result += "byval ";
   return Result;
 }
 
@@ -269,7 +273,7 @@ std::string Intrinsic::getName(ID id, const Type **Tys, unsigned numTys) {
 }
 
 const FunctionType *Intrinsic::getType(ID id, const Type **Tys, 
-                                       uint32_t numTys) {
+                                       unsigned numTys) {
   const Type *ResultTy = NULL;
   std::vector<const Type*> ArgTys;
   bool IsVarArg = false;
@@ -307,11 +311,8 @@ Value *IntrinsicInst::StripPointerCasts(Value *Ptr) {
     if (isa<PointerType>(CI->getOperand(0)->getType()))
       return StripPointerCasts(CI->getOperand(0));
   } else if (GetElementPtrInst *GEP = dyn_cast<GetElementPtrInst>(Ptr)) {
-    for (unsigned i = 1, e = GEP->getNumOperands(); i != e; ++i)
-      if (!isa<Constant>(GEP->getOperand(i)) ||
-          !cast<Constant>(GEP->getOperand(i))->isNullValue())
-        return Ptr;
-    return StripPointerCasts(GEP->getOperand(0));
+    if (GEP->hasAllZeroIndices())
+      return StripPointerCasts(GEP->getOperand(0));
   }
   return Ptr;
 }