<div dir="ltr">Alternatively you could make the second argument passed on the stack instead of by reference.  It returns by value anyway, so it's not like there's no precedent for it.</div><div class="gmail_extra">
<br><br><div class="gmail_quote">On Mon, Jul 7, 2014 at 7:35 PM, Reid Kleckner <span dir="ltr"><<a href="mailto:rnk@google.com" target="_blank">rnk@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Yes, gcc is important.  The build was broken by r212500:<div><a href="http://llvm-amd64.freebsd.your.org/b/builders/lldb-amd64-freebsd/builds/2276" target="_blank">http://llvm-amd64.freebsd.your.org/b/builders/lldb-amd64-freebsd/builds/2276</a><br>

</div><div><br></div><div>I just grabbed that link because it was in #llvm IRC.</div><div><br></div><div>IsValid needs to take a const ref in order to lifetime extend the temporary parameter.  Or, maybe the code is broken some other way.</div>

</div><div class="gmail_extra"><br><br><div class="gmail_quote"><div class="">On Mon, Jul 7, 2014 at 7:11 PM, Randy Smith <span dir="ltr"><<a href="mailto:rdsmith@chromium.org" target="_blank">rdsmith@chromium.org</a>></span> wrote:<br>

</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><div dir="ltr"><br><div>Is there a goal of keeping lldb compatible with building with gcc?  I've been building successfully with gcc 4.8.2, but compiling at r212507 just broke with that gcc on a source line that was recently (today) changed.  Full log below; key excerpts here:</div>


<div><br></div><div><br></div><div>







/usr/local/google/home/rdsmith/Sandboxen/llvm/tools/lldb/source/Interpreter/Args.cpp:693:115: error: no matching function for call to ‘lldb_private::OptionValidator::IsValid(lldb_private::Platform&, lldb_private::ExecutionContext)’                                                                                     <br>


             if (validator && !validator->IsValid(*interpreter.GetPlatform(true), interpreter.GetExecutionContext()))        <br><br>/usr/local/google/home/rdsmith/Sandboxen/llvm/tools/lldb/include/lldb/lldb-private-types.h:61:22: note:   no known conversion for argument 2 from ‘lldb_private::ExecutionContext’ to ‘lldb_private::ExecutionContext&’<br>


<br><br>I'm happy to upgrade to compiling with clang if that's needed; I'm just wanting to confirm policy and call out that the web page instructions may need to be changed.<p>(If this is pilot error on my part, sincere apologies for the spam.  But at the moment I don't see how it could be pilot error.)<br>


</p><p>-- Randy</p></div><div><br></div><div><br></div><div><br></div><div>







<p><span>FAILED</span>: /usr/local/google/home/rdsmith/toolchains/bin/g++   -DGTEST_HAS_RTTI=0 -DHAVE_ROUND -D_DEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -fPIC -fvisibility-inlines-hidden -Wall -W -Wno-unused-parameter -Wwrite-strings -Wno-missing-field-initializers -pedantic -Wno-lo<span>\</span></p>



<p>ng-long -Wno-maybe-uninitialized -Wnon-virtual-dtor -Wno-comment -std=c++11 -ffunction-sections -fdata-sections -Wno-deprecated-declarations -Wno-unknown-pragmas -Wno-deprecated-register  -fno-exceptions -fno-rtti -fPIC -g -Itools/lldb/source/Interpreter -I/usr/local/google/home/rdsmith/Sandboxen/llvm/tools/lldb/s<span>\</span></p>



<p>ource/Interpreter -I/usr/local/google/home/rdsmith/Sandboxen/llvm/tools/lldb/include -Itools/lldb/include -Iinclude -I/usr/local/google/home/rdsmith/Sandboxen/llvm/include -I/usr/include/python2.7 -I/usr/local/google/home/rdsmith/Sandboxen/llvm/tools/lldb/../clang/include -Itools/lldb/../clang/include -I/usr/local<span>\</span></p>



<p>/google/home/rdsmith/Sandboxen/llvm/tools/lldb/source/. -I/usr/local/google/home/rdsmith/Sandboxen/llvm/tools/lldb/source/Plugins/Process/Linux -I/usr/local/google/home/rdsmith/Sandboxen/llvm/tools/lldb/source/Plugins/Process/POSIX    -fno-exceptions -fno-rtti -MMD -MT tools/lldb/source/Interpreter/CMakeFiles/lldb<span>\</span></p>



<p>Interpreter.dir/Args.cpp.o -MF tools/lldb/source/Interpreter/CMakeFiles/lldbInterpreter.dir/Args.cpp.o.d -o <span>tools/lldb/source/Interpreter/CMakeFiles/lldbInterpreter.dir/Args.cpp.o</span> -c /usr/local/google/home/rdsmith/Sandboxen/llvm/tools/lldb/source/Interpreter/Args.cpp                                                 </p>



<p><span>/usr/local/google/home/rdsmith/Sandboxen/llvm/tools/lldb/source/Interpreter/Args.cpp</span>: In member function ‘lldb_private::Error lldb_private::Args::ParseOptions(lldb_private::Options&)’:                                                                                                                                    </p>



<p><span><b>/usr/local/google/home/rdsmith/Sandboxen/llvm/tools/lldb/source/Interpreter/Args.cpp</b></span><span>:</span><span>693</span><span>:</span><span>115</span><span>: </span>error: no matching function for call to ‘lldb_private::OptionValidator::IsValid(lldb_private::Platform&, lldb_private::ExecutionContext)’                                                                                     </p>



<p>             if (validator && !validator->IsValid(*interpreter.GetPlatform(true), interpreter.GetExecutionContext()))                                                                                                                                                                                                       </p>



<p>                                                                                                                   ^                                                                                                                                                                                                        </p>



<p><span><b>/usr/local/google/home/rdsmith/Sandboxen/llvm/tools/lldb/source/Interpreter/Args.cpp</b></span><span>:</span><span>693</span><span>:</span><span>115</span><span>: note</span>: candidate is:                                                                                                                                                                                                           </p>



<p><span>In file included from </span><span><b>/usr/local/google/home/rdsmith/Sandboxen/llvm/tools/lldb/include/lldb/Interpreter/Args.h:22</b></span><span>:</span><span>0</span><span>,</span>                                                                                                                                                                                                        </p>



<p><span>                 from </span><span><b>/usr/local/google/home/rdsmith/Sandboxen/llvm/tools/lldb/source/Interpreter/Args.cpp</b></span><span>:</span><span>17</span><span>:</span>                                                                                                                                                                                                              </p>



<p><span><b>/usr/local/google/home/rdsmith/Sandboxen/llvm/tools/lldb/include/lldb/lldb-private-types.h</b></span><span>:</span><span>61</span><span>:</span><span>22</span><span>: note</span>: virtual bool lldb_private::OptionValidator::IsValid(lldb_private::Platform&, lldb_private::ExecutionContext&) const                                                                                                 </p>



<p>         virtual bool IsValid(Platform &platform, ExecutionContext &target) const = 0;                                                                                                                                                                                                                                      </p>



<p>                      ^                                                                                                                                                                                                                                                                                                     </p>



<p><span><b>/usr/local/google/home/rdsmith/Sandboxen/llvm/tools/lldb/include/lldb/lldb-private-types.h</b></span><span>:</span><span>61</span><span>:</span><span>22</span><span>: note</span>:   no known conversion for argument 2 from ‘lldb_private::ExecutionContext’ to ‘lldb_private::ExecutionContext&’                                                                                                     </p>


</div></div>
<br></div></div><div class="">_______________________________________________<br>
lldb-dev mailing list<br>
<a href="mailto:lldb-dev@cs.uiuc.edu" target="_blank">lldb-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev</a><br>
<br></div></blockquote></div><br></div>
<br>_______________________________________________<br>
lldb-dev mailing list<br>
<a href="mailto:lldb-dev@cs.uiuc.edu">lldb-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev</a><br>
<br></blockquote></div><br></div>