diff options
author | Chris Lattner <sabre@nondot.org> | 2010-01-09 19:20:07 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-01-09 19:20:07 +0000 |
commit | bbddd9640614e4a0fa761c57a6e5e51b0c4ddd7c (patch) | |
tree | 21dcd2c1a4b5eda9dae27df1bdc26650ece85a50 /llvm/lib/AsmParser | |
parent | 0de4caa57b9e6d9a3dcccfd2cc79a91dcf106c62 (diff) | |
download | bcm5719-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.cpp | 4 |
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; |