Don't crash on bogus source value
[oota-llvm.git] / lib / AsmParser / llvmAsmParser.y
index e930bc55eb88d47d7fbfd477b90547f715f022df..8e4450138e841b9298bf842a905b897993917bf3 100644 (file)
@@ -1171,6 +1171,9 @@ ConstVal : SIntType EINT64VAL {      // integral constants
 
 
 ConstExpr: CAST '(' ConstVal TO Types ')' {
+    if (!$3->getType()->isFirstClassType())
+      ThrowException("cast constant expression from a non-primitive type: '" +
+                     $3->getType()->getDescription() + "'!");
     if (!$5->get()->isFirstClassType())
       ThrowException("cast constant expression to a non-primitive type: '" +
                      $5->get()->getDescription() + "'!");