aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/AsmParser/llvmAsmParser.y3
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/AsmParser/llvmAsmParser.y b/lib/AsmParser/llvmAsmParser.y
index 0e88c01893..0e61b2beab 100644
--- a/lib/AsmParser/llvmAsmParser.y
+++ b/lib/AsmParser/llvmAsmParser.y
@@ -330,6 +330,9 @@ static Value *getVal(const Type *Ty, const ValID &ID) {
Value *V = getValNonImprovising(Ty, ID);
if (V) return V;
+ if (!Ty->isFirstClassType() && !isa<OpaqueType>(Ty))
+ ThrowException("Invalid use of a composite type!");
+
// If we reached here, we referenced either a symbol that we don't know about
// or an id number that hasn't been read yet. We may be referencing something
// forward, so just create an entry to be resolved later and get to it...