IRVerifier: Correctly check attribute types
authorTobias Grosser <grosser@fim.uni-passau.de>
Tue, 2 Jul 2013 03:28:10 +0000 (03:28 +0000)
committerTobias Grosser <grosser@fim.uni-passau.de>
Tue, 2 Jul 2013 03:28:10 +0000 (03:28 +0000)
Add missing parenthesis such that all and not only the very first attribute
is checked.

Testing this piece of code is not possible with an LLVM-IR test file, as the
LLVM-IR parser has a similar check such that the wrong IR does not even arrive
at the verifier.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185408 91177308-0d34-0410-b5e6-96231b3b80d8

lib/IR/Verifier.cpp

index 7123eaf18a0c605e025259bc441d3143fdded60f..8b4c1655d8d4cb851805e85f1f94d96de0d1e763 100644 (file)
@@ -695,10 +695,11 @@ void Verifier::VerifyAttributeTypes(AttributeSet Attrs, unsigned Idx,
         I->getKindAsEnum() == Attribute::Builtin ||
         I->getKindAsEnum() == Attribute::NoBuiltin ||
         I->getKindAsEnum() == Attribute::Cold) {
-      if (!isFunction)
+      if (!isFunction) {
           CheckFailed("Attribute '" + I->getAsString() +
                       "' only applies to functions!", V);
           return;
+      }
     } else if (isFunction) {
         CheckFailed("Attribute '" + I->getAsString() +
                     "' does not apply to functions!", V);