From: Chris Lattner Date: Sun, 4 Jan 2009 22:28:21 +0000 (+0000) Subject: simplify control flow by removing a goto. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2dcaab3de6de20db3a8526bb4fdd5e760ff60cc2;p=clang simplify control flow by removing a goto. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61641 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Parse/ParseExpr.cpp b/lib/Parse/ParseExpr.cpp index f719b8914f..f05119d797 100644 --- a/lib/Parse/ParseExpr.cpp +++ b/lib/Parse/ParseExpr.cpp @@ -602,11 +602,13 @@ Parser::OwningExprResult Parser::ParseCastExpression(bool isUnaryExpression) { case tok::kw_float: case tok::kw_double: case tok::kw_void: - case tok::kw_typeof: { - if (!getLang().CPlusPlus) - goto UnhandledToken; - case tok::annot_qualtypename: - assert(getLang().CPlusPlus && "Expected C++"); + case tok::kw_typeof: + case tok::annot_qualtypename: { + if (!getLang().CPlusPlus) { + Diag(Tok, diag::err_expected_expression); + return ExprError(); + } + // postfix-expression: simple-type-specifier '(' expression-list[opt] ')' // DeclSpec DS; @@ -657,9 +659,8 @@ Parser::OwningExprResult Parser::ParseCastExpression(bool isUnaryExpression) { // These can be followed by postfix-expr pieces. if (getLang().ObjC1) return ParsePostfixExpressionSuffix(ParseObjCMessageExpression()); - // FALL THROUGH. + // FALL THROUGH. default: - UnhandledToken: Diag(Tok, diag::err_expected_expression); return ExprError(); }