<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Feb 16, 2016 at 1:53 AM, Benjamin Kramer via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: d0k<br>
Date: Tue Feb 16 03:53:47 2016<br>
New Revision: 260949<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=260949&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=260949&view=rev</a><br>
Log:<br>
[Hexagon] Hoist nonnull assert up.<br>
<br>
Once a pointer is turned into a reference it cannot be nullptr, clang<br>
rightfully warns about this assert being a tautology. Put the assert<br>
before the reference is created.<br>
<br>
Modified:<br>
    llvm/trunk/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp<br>
    llvm/trunk/lib/Target/Hexagon/MCTargetDesc/HexagonMCInstrInfo.cpp<br>
<br>
Modified: llvm/trunk/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp?rev=260949&r1=260948&r2=260949&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp?rev=260949&r1=260948&r2=260949&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp (original)<br>
+++ llvm/trunk/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp Tue Feb 16 03:53:47 2016<br>
@@ -592,7 +592,6 @@ public:<br>
<br>
   static std::unique_ptr<HexagonOperand> CreateImm(const MCExpr *Val, SMLoc S,<br>
                                                    SMLoc E) {<br>
-    assert(&HexagonMCInstrInfo::getExpr(*Val) != nullptr);<br>
     HexagonOperand *Op = new HexagonOperand(Immediate);<br>
     Op->Imm.Val = Val;<br>
     Op->Imm.MustExtend = false;<br>
<br>
Modified: llvm/trunk/lib/Target/Hexagon/MCTargetDesc/HexagonMCInstrInfo.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Hexagon/MCTargetDesc/HexagonMCInstrInfo.cpp?rev=260949&r1=260948&r2=260949&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Hexagon/MCTargetDesc/HexagonMCInstrInfo.cpp?rev=260949&r1=260948&r2=260949&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/Hexagon/MCTargetDesc/HexagonMCInstrInfo.cpp (original)<br>
+++ llvm/trunk/lib/Target/Hexagon/MCTargetDesc/HexagonMCInstrInfo.cpp Tue Feb 16 03:53:47 2016<br>
@@ -193,6 +193,7 @@ MCInstrDesc const &HexagonMCInstrInfo::g<br>
<br>
 MCExpr const &HexagonMCInstrInfo::getExpr(MCExpr const &Expr) {<br>
   HexagonMCExpr const &HExpr = *llvm::cast<HexagonMCExpr>(&Expr);<br></blockquote><div><br></div><div>Speaking of weird null/reference things, perhaps we can drop the &/* in this line ^ since llvm::cast supports casting refs?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
+  assert(HExpr.getExpr());<br>
   return *HExpr.getExpr();<br>
 }<br>
<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div></div>