summaryrefslogtreecommitdiffstats
path: root/llvm/lib/AsmParser
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-01-09 19:20:07 +0000
committerChris Lattner <sabre@nondot.org>2010-01-09 19:20:07 +0000
commitbbddd9640614e4a0fa761c57a6e5e51b0c4ddd7c (patch)
tree21dcd2c1a4b5eda9dae27df1bdc26650ece85a50 /llvm/lib/AsmParser
parent0de4caa57b9e6d9a3dcccfd2cc79a91dcf106c62 (diff)
downloadbcm5719-llvm-bbddd9640614e4a0fa761c57a6e5e51b0c4ddd7c.tar.gz
bcm5719-llvm-bbddd9640614e4a0fa761c57a6e5e51b0c4ddd7c.zip
fix PR5983, reject function bodies with no blocks per the grammar.
llvm-svn: 93067
Diffstat (limited to 'llvm/lib/AsmParser')
-rw-r--r--llvm/lib/AsmParser/LLParser.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/AsmParser/LLParser.cpp b/llvm/lib/AsmParser/LLParser.cpp
index 3ee683f7f67..9de1ff940e8 100644
--- a/llvm/lib/AsmParser/LLParser.cpp
+++ b/llvm/lib/AsmParser/LLParser.cpp
@@ -2779,6 +2779,10 @@ bool LLParser::ParseFunctionBody(Function &Fn) {
PerFunctionState PFS(*this, Fn, FunctionNumber);
+ // We need at least one basic block.
+ if (Lex.getKind() == lltok::rbrace || Lex.getKind() == lltok::kw_end)
+ return TokError("function body requires at least one basic block");
+
while (Lex.getKind() != lltok::rbrace && Lex.getKind() != lltok::kw_end)
if (ParseBasicBlock(PFS)) return true;
OpenPOWER on IntegriCloud