From c6be2251b7e9bbced533b13027eeaab83e166bc5 Mon Sep 17 00:00:00 2001 From: Simon Dardis Date: Wed, 9 Aug 2017 10:47:52 +0000 Subject: [PATCH] [mips] PR34083 - Wimplicit-fallthrough warning in MipsAsmParser.cpp Assert that a binary expression is actually a binary expression, rather than potientially incorrectly attempting to handle it as a unary expression. This resolves PR34083. Thanks to Simonn Pilgrim for reporting the issue! llvm-svn: 310460 --- llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp b/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp index e12188e..8a5de01 100644 --- a/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp +++ b/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp @@ -5439,12 +5439,13 @@ bool MipsAsmParser::isEvaluated(const MCExpr *Expr) { return true; case MCExpr::SymbolRef: return (cast(Expr)->getKind() != MCSymbolRefExpr::VK_None); - case MCExpr::Binary: - if (const MCBinaryExpr *BE = dyn_cast(Expr)) { - if (!isEvaluated(BE->getLHS())) - return false; - return isEvaluated(BE->getRHS()); - } + case MCExpr::Binary: { + const MCBinaryExpr *BE = dyn_cast(Expr); + assert(BE && "Binary expression is not a binary expression?"); + if (!isEvaluated(BE->getLHS())) + return false; + return isEvaluated(BE->getRHS()); + } case MCExpr::Unary: return isEvaluated(cast(Expr)->getSubExpr()); case MCExpr::Target: -- 2.7.4