Start using more of the AttrNode in the AttributeSetImpl class.

Also add some asserts.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173627 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/IR/Attributes.cpp b/lib/IR/Attributes.cpp
index 780da00..00b542d 100644
--- a/lib/IR/Attributes.cpp
+++ b/lib/IR/Attributes.cpp
@@ -553,12 +553,14 @@
     AttrNodes.push_back(std::make_pair(AWI.Index,
                                        AttributeSetNode::get(C, Attrs)));
   }
-}
 
-AttributeSetImpl::
-AttributeSetImpl(LLVMContext &C,
-                 ArrayRef<std::pair<uint64_t, AttributeSetNode*> > attrs)
-  : Context(C), AttrNodes(attrs.begin(), attrs.end()) {
+  assert(AttrNodes.size() == AttrList.size() &&
+         "Number of attributes is different between lists!");
+#ifndef NDEBUG
+  for (unsigned I = 0, E = AttrNodes.size(); I != E; ++I)
+    assert((I == 0 || AttrNodes[I - 1].first < AttrNodes[I].first) &&
+           "Attributes not in ascending order!");
+#endif
 }
 
 //===----------------------------------------------------------------------===//