[IR] Assert that we never create an empty AttributeListImpl, NFC
authorReid Kleckner <rnk@google.com>
Wed, 12 Apr 2017 22:22:01 +0000 (22:22 +0000)
committerReid Kleckner <rnk@google.com>
Wed, 12 Apr 2017 22:22:01 +0000 (22:22 +0000)
Delete following conditional that is always true as a result.

llvm-svn: 300117

llvm/lib/IR/Attributes.cpp

index 4b840c3..a62afe9 100644 (file)
@@ -721,6 +721,7 @@ AttributeListImpl::AttributeListImpl(
     LLVMContext &C, ArrayRef<std::pair<unsigned, AttributeSet>> Slots)
     : Context(C), NumSlots(Slots.size()), AvailableFunctionAttrs(0) {
 #ifndef NDEBUG
+  assert(!Slots.empty() && "pointless AttributeListImpl");
   if (Slots.size() >= 2) {
     auto &PrevPair = Slots.front();
     for (auto &CurPair : Slots.drop_front()) {
@@ -733,19 +734,17 @@ AttributeListImpl::AttributeListImpl(
   std::copy(Slots.begin(), Slots.end(), getTrailingObjects<IndexAttrPair>());
 
   // Initialize AvailableFunctionAttrs summary bitset.
-  if (NumSlots > 0) {
-    static_assert(Attribute::EndAttrKinds <=
-                      sizeof(AvailableFunctionAttrs) * CHAR_BIT,
-                  "Too many attributes");
-    static_assert(AttributeList::FunctionIndex == ~0u,
-                  "FunctionIndex should be biggest possible index");
-    const auto &Last = Slots.back();
-    if (Last.first == AttributeList::FunctionIndex) {
-      AttributeSet Node = Last.second;
-      for (Attribute I : Node) {
-        if (!I.isStringAttribute())
-          AvailableFunctionAttrs |= ((uint64_t)1) << I.getKindAsEnum();
-      }
+  static_assert(Attribute::EndAttrKinds <=
+                    sizeof(AvailableFunctionAttrs) * CHAR_BIT,
+                "Too many attributes");
+  static_assert(AttributeList::FunctionIndex == ~0u,
+                "FunctionIndex should be biggest possible index");
+  const auto &Last = Slots.back();
+  if (Last.first == AttributeList::FunctionIndex) {
+    AttributeSet Node = Last.second;
+    for (Attribute I : Node) {
+      if (!I.isStringAttribute())
+        AvailableFunctionAttrs |= ((uint64_t)1) << I.getKindAsEnum();
     }
   }
 }