<div dir="ltr">Please don't add initializations to variables that aren't needed for program correctness - if the static analyzer can't figure this out that's for it to be fixed, or to add annotations that explain these guarantees to it, without changing the source code to add initializations that, if ever used, may hide further bugs (since tools like MSan won't be able to diagnose those errors)<br><br>In this case, these variables don't appear to need any initialization - they're guaranteed to be initialized if isBasePlusOffsetMemoryAccess returns true. (& in fact IsStore is guaranteed to be initialized regardless)<br><br>Refactoring the API might be an idea - isBasePlusOffsetMemoryAccess could return Optional<struct { IsMemAccess, AddrIdx }> instead, then this would all be clear to both programmers, static analyzers, and runtime checking.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jan 7, 2020 at 2:56 AM Simon Pilgrim via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
Author: Simon Pilgrim<br>
Date: 2020-01-07T10:55:38Z<br>
New Revision: bcb47bbd7214b2795eb114df22ef745850abccb2<br>
<br>
URL: <a href="https://github.com/llvm/llvm-project/commit/bcb47bbd7214b2795eb114df22ef745850abccb2" rel="noreferrer" target="_blank">https://github.com/llvm/llvm-project/commit/bcb47bbd7214b2795eb114df22ef745850abccb2</a><br>
DIFF: <a href="https://github.com/llvm/llvm-project/commit/bcb47bbd7214b2795eb114df22ef745850abccb2.diff" rel="noreferrer" target="_blank">https://github.com/llvm/llvm-project/commit/bcb47bbd7214b2795eb114df22ef745850abccb2.diff</a><br>
<br>
LOG: Fix "use of uninitialized variable" static analyzer warnings. NFCI.<br>
<br>
Added: <br>
<br>
<br>
Modified: <br>
    llvm/lib/Target/Mips/MCTargetDesc/MipsNaClELFStreamer.cpp<br>
<br>
Removed: <br>
<br>
<br>
<br>
################################################################################<br>
diff  --git a/llvm/lib/Target/Mips/MCTargetDesc/MipsNaClELFStreamer.cpp b/llvm/lib/Target/Mips/MCTargetDesc/MipsNaClELFStreamer.cpp<br>
index 2d53750ad0ee..0544758f8a25 100644<br>
--- a/llvm/lib/Target/Mips/MCTargetDesc/MipsNaClELFStreamer.cpp<br>
+++ b/llvm/lib/Target/Mips/MCTargetDesc/MipsNaClELFStreamer.cpp<br>
@@ -154,8 +154,8 @@ class MipsNaClELFStreamer : public MipsELFStreamer {<br>
     }<br>
<br>
     // Sandbox loads, stores and SP changes.<br>
-    unsigned AddrIdx;<br>
-    bool IsStore;<br>
+    unsigned AddrIdx = 0;<br>
+    bool IsStore = false;<br>
     bool IsMemAccess = isBasePlusOffsetMemoryAccess(Inst.getOpcode(), &AddrIdx,<br>
                                                     &IsStore);<br>
     bool IsSPFirstOperand = isStackPointerFirstOperand(Inst);<br>
<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote></div>