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.


On Mon, Jul 7, 2014 at 7:35 PM, Reid Kleckner <[email protected]> wrote:

> Yes, gcc is important.  The build was broken by r212500:
>
> http://llvm-amd64.freebsd.your.org/b/builders/lldb-amd64-freebsd/builds/2276
>
> I just grabbed that link because it was in #llvm IRC.
>
> IsValid needs to take a const ref in order to lifetime extend the
> temporary parameter.  Or, maybe the code is broken some other way.
>
>
> On Mon, Jul 7, 2014 at 7:11 PM, Randy Smith <[email protected]> wrote:
>
>>
>> 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:
>>
>>
>> /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)’
>>
>>              if (validator &&
>> !validator->IsValid(*interpreter.GetPlatform(true),
>> interpreter.GetExecutionContext()))
>>
>> /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&’
>>
>>
>> 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.
>>
>> (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.)
>>
>> -- Randy
>>
>>
>>
>> FAILED: /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\
>>
>> 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\
>>
>> 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\
>>
>> /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\
>>
>> Interpreter.dir/Args.cpp.o -MF
>> tools/lldb/source/Interpreter/CMakeFiles/lldbInterpreter.dir/Args.cpp.o.d
>> -o
>> tools/lldb/source/Interpreter/CMakeFiles/lldbInterpreter.dir/Args.cpp.o
>> -c
>> /usr/local/google/home/rdsmith/Sandboxen/llvm/tools/lldb/source/Interpreter/Args.cpp
>>
>>
>>
>> /usr/local/google/home/rdsmith/Sandboxen/llvm/tools/lldb/source/Interpreter/Args.cpp:
>> In member function ‘lldb_private::Error
>> lldb_private::Args::ParseOptions(lldb_private::Options&)’:
>>
>>
>>
>>
>> */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)’
>>
>>
>>              if (validator &&
>> !validator->IsValid(*interpreter.GetPlatform(true),
>> interpreter.GetExecutionContext()))
>>
>>
>>
>>
>>
>>                                           ^
>>
>>
>>
>>
>>
>> */usr/local/google/home/rdsmith/Sandboxen/llvm/tools/lldb/source/Interpreter/Args.cpp*
>> :693:115: note: candidate is:
>>
>>
>>
>>
>> In file included from
>> */usr/local/google/home/rdsmith/Sandboxen/llvm/tools/lldb/include/lldb/Interpreter/Args.h:22*
>> :0,
>>
>>
>>
>>                  from
>> */usr/local/google/home/rdsmith/Sandboxen/llvm/tools/lldb/source/Interpreter/Args.cpp*
>> :17:
>>
>>
>>
>>
>> */usr/local/google/home/rdsmith/Sandboxen/llvm/tools/lldb/include/lldb/lldb-private-types.h*
>> :61:22: note: virtual bool
>> lldb_private::OptionValidator::IsValid(lldb_private::Platform&,
>> lldb_private::ExecutionContext&) const
>>
>>
>>          virtual bool IsValid(Platform &platform, ExecutionContext
>> &target) const = 0;
>>
>>
>>
>>
>>                       ^
>>
>>
>>
>>
>>
>>
>> */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&’
>>
>>
>>
>> _______________________________________________
>> lldb-dev mailing list
>> [email protected]
>> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
>>
>>
>
> _______________________________________________
> lldb-dev mailing list
> [email protected]
> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
>
>
_______________________________________________
lldb-dev mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev

Reply via email to