aboutsummaryrefslogtreecommitdiffstats
path: root/lib/AsmParser/LLParser.cpp
diff options
context:
space:
mode:
authorNick Lewycky <nicholas@mxc.ca>2009-06-07 01:45:11 +0000
committerNick Lewycky <nicholas@mxc.ca>2009-06-07 01:45:11 +0000
commitd6b449a57bd60e126bd7b80d206bbe3c6372de93 (patch)
tree1b8cf937900505da1d5dd7ffc2753768095ae9ad /lib/AsmParser/LLParser.cpp
parent994ffe1a9a831c10f6cf2e1a15603c5108cca09e (diff)
downloadexternal_llvm-d6b449a57bd60e126bd7b80d206bbe3c6372de93.zip
external_llvm-d6b449a57bd60e126bd7b80d206bbe3c6372de93.tar.gz
external_llvm-d6b449a57bd60e126bd7b80d206bbe3c6372de93.tar.bz2
Refuse metadata* type for function arguments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73010 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/AsmParser/LLParser.cpp')
-rw-r--r--lib/AsmParser/LLParser.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/AsmParser/LLParser.cpp b/lib/AsmParser/LLParser.cpp
index 5c44502..4759d6f 100644
--- a/lib/AsmParser/LLParser.cpp
+++ b/lib/AsmParser/LLParser.cpp
@@ -1149,7 +1149,9 @@ bool LLParser::ParseArgumentList(std::vector<ArgInfo> &ArgList,
Lex.Lex();
}
- if (!ArgTy->isFirstClassType() && !isa<OpaqueType>(ArgTy))
+ if ((!ArgTy->isFirstClassType() && !isa<OpaqueType>(ArgTy)) ||
+ (isa<PointerType>(ArgTy) &&
+ cast<PointerType>(ArgTy)->getElementType() == Type::MetadataTy))
return Error(TypeLoc, "invalid type for function argument");
ArgList.push_back(ArgInfo(TypeLoc, ArgTy, Attrs, Name));