<div dir="ltr">Yep - You'd have to separate them for correctness if "NewKey" might not already be in "M".</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Sep 26, 2019 at 2:48 PM Jeroen Dobbelaere via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@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">Hi,<br>
<br>
I have a question about llvm/ADT/DenseMap.h and llvm/IR/ValueMap.h:<br>
<br>
When you have a:<br>
     MapType M;<br>
<br>
is it safe to do:<br>
    M[NewKey] = M[OldKey]; <br>
<br>
or do you need to do it in two steps:<br>
   auto tmp = M[OldKey]; // ensure the reference to M[OldKey] is copied, before reassigning.<br>
   M[NewKey] = tmp;      // might reallocate<br>
<br>
aka, will a possible allocation for M[NewKey] invalidate the reference that M[OldKey] returns ?<br>
<br>
Greetings,<br>
<br>
Jeroen Dobbelaere<br>
<br>
<br>
<br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div>