<div dir="ltr">Well, at least the good news is this kind of bug *should* have been caught had we been using a conformant standard library implementation.<div><br></div><div>Have you ever tried running the test suite with an ASAN instrumented build of LLDB?  We really should have one ASAN bot for every supported configuration.</div></div><br><div class="gmail_quote"><div dir="ltr">On Tue, Oct 31, 2017 at 8:48 AM Pavel Labath <<a href="mailto:labath@google.com">labath@google.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">libstdc++-4.8<br>
<br>
I think the newest versions have a conformant implementation, but I<br>
don't know the full details (I know it was a complicated change<br>
because of the need to maintain binary compatibility).<br>
<br>
Our android tests are now runinng lldb-server built with libc++ (which<br>
is how I found the bug). Eventually (= probably not this year) I may<br>
switch the host lldb as well.<br>
<br>
On 31 October 2017 at 15:41, Zachary Turner <<a href="mailto:zturner@google.com" target="_blank">zturner@google.com</a>> wrote:<br>
><br>
><br>
> On Tue, Oct 31, 2017 at 8:20 AM Pavel Labath <<a href="mailto:labath@google.com" target="_blank">labath@google.com</a>> wrote:<br>
>><br>
>> On 31 October 2017 at 15:12, Zachary Turner via lldb-commits<br>
>> <<a href="mailto:lldb-commits@lists.llvm.org" target="_blank">lldb-commits@lists.llvm.org</a>> wrote:<br>
>> > The takeaway from this example is nothing we don't already know.  We<br>
>> > need<br>
>> > better test coverage.<br>
>> Actually, this was caught by a test (pretty much all of them), but<br>
>> only when building with libc++, as the code was "safe" with libstdc++<br>
>> due to the copy-on-write implementation of std::string (the temporary<br>
>> object shared storage with the longer-lived string it was copied<br>
>> from).<br>
><br>
><br>
> What version of libstdc++?  AFAIK copy-on-write std::string is no longer<br>
> conformant in C++11.<br>
><br>
> If this was really being masked due to a CoW string implementation, we need<br>
> to make absolutely sure we are running tests on a bot with a conformant<br>
> standard library.<br>
</blockquote></div>