[lldb-dev] Heads up: LLDB is broken with LLVM at ToT

Zachary Turner zturner at google.com
Tue Dec 9 14:28:06 PST 2014


This fixes the issue.  I will check in your patch.  Thanks!

On Tue Dec 09 2014 at 2:20:02 PM Zachary Turner <zturner at google.com> wrote:

> Testing now.   I notice a few of the changes aren't actually required in
> order to fix compiler errors.  For example, this line:
>
> -    ConstantInt *constant_int =
> dyn_cast<ConstantInt>(alloc_md->getOperand(0));
> +    ConstantInt *constant_int =
> mdconst::dyn_extract<ConstantInt>(alloc_md->getOperand(0));
>
> wasn't actually failing.  Not sure if that's important, but I'm using your
> fixed version anyway.
>
> On Tue Dec 09 2014 at 2:11:08 PM Duncan P. N. Exon Smith <
> dexonsmith at apple.com> wrote:
>
>> Attaching a patch that should fix it.  Can you try compiling?
>>
>>
>>
>>
>> > On 2014 Dec 9, at 14:03, Zachary Turner <zturner at google.com> wrote:
>> >
>> > Here's the 3 errors.
>> >
>> > ..\..\tools\lldb\source\Expression\IRForTarget.cpp(413) : error C2678:
>> binary '!=' : no operator found which takes a left-hand operand of type
>> 'const llvm::MDOperand' (or there is no acceptable conversion)
>> >         d:\src\llvm\include\llvm/ADT/APSInt.h(291): could be 'bool
>> llvm::operator !=(int64_t,const llvm::APSInt &)'
>> >         d:\src\llvm\include\llvm/ADT/APInt.h(1724): or       'bool
>> llvm::operator !=(uint64_t,const llvm::APInt &)'
>> >         d:\src\llvm\include\llvm/ADT/StringRef.h(527): or       'bool
>> llvm::operator !=(llvm::StringRef,llvm::StringRef)'
>> >         while trying to match the argument list '(const
>> llvm::MDOperand, const llvm::GlobalValue *)'
>> >
>> >
>> >
>> > ..\..\tools\lldb\source\Expression\IRForTarget.cpp(647) : error C2664:
>> 'llvm::MDNode *llvm::MDNode::get(llvm::LLVMContext
>> &,llvm::ArrayRef<llvm::Metadata *>)' : cannot convert argument 2 from
>> 'llvm::ArrayRef<llvm::Value *>' to 'llvm::ArrayRef<llvm::Metadata *>'
>> >         No user-defined-conversion operator available that can perform
>> this conversion, or the operator cannot be called
>> >
>> >
>> > ..\..\tools\lldb\source\Expression\IRForTarget.cpp(1254) : error
>> C2664: 'llvm::MDNode *llvm::MDNode::get(llvm::LLVMContext
>> &,llvm::ArrayRef<llvm::Metadata *>)' : cannot convert argument 2 from
>> 'llvm::ArrayRef<llvm::Value *>' to 'llvm::ArrayRef<llvm::Metadata *>'
>> >         No user-defined-conversion operator available that can perform
>> this conversion, or the operator cannot be called
>> >
>> >
>> > On Tue Dec 09 2014 at 1:56:03 PM Zachary Turner <zturner at google.com>
>> wrote:
>> > I'm not sure what the status of building LLDB with CMake is, but the
>> normal way apple people build LLDB is to structure the directory like this:
>> >
>> > lldb
>> > --llvm
>> > ----tools
>> > ------clang
>> >
>> > Then open the xcode workspace and build the lldb-tool target.
>> >
>> > I'll sync to ToT again though so that I can get you a dump of the
>> compiler errors I'm seeing.
>> >
>> > On Tue Dec 09 2014 at 1:52:40 PM Duncan P. N. Exon Smith <
>> dexonsmith at apple.com> wrote:
>> > I'm trying to build lldb now, but it's hung trying to build LLVM and
>> > clang... but I already built these?  I don't really understand.
>> >
>> > Is there any way to make lldb point to my LLVM checkout?  I just want to
>> > see the compiler errors so I can fix them :(.
>> >
>> > Alternatively, if some can email me a compile log with all the errors
>> > (can you do a `make -k` or something?) I can send you a patch... this is
>> > mechanical to update, but I need the compiler to tell me what's wrong.
>> >
>> > I expect the fixes to all be along these lines:
>> >
>> >  - Value *Ops[] => Metadata *Ops[]
>> >
>> >  - cast<ConstantInt>(N->getOperand(0)) =>
>> >    mdconst::extract<ConstantInt>(N->getOperand(0))
>> >
>> >  - Value *Op = ConstantInt::get(...) =>
>> >    Metadata *Op = ConstantAsMetadata::get(ConstantInt::get(...))
>> >
>> > Sorry for the breakage :(.
>> >
>> > > On 2014 Dec 9, at 13:41, Zachary Turner <zturner at google.com> wrote:
>> > >
>> > > If you sync llvm past git revision db7b69e3a634c5fdff0eceeee2a41ee49c3270a2
>> (svn r223802), your LLDB build will be broken.
>> > >
>> > > I was able to fix one of the errors, but this isn't really my area of
>> expertise, so I stopped when I realized I didn't know what I was doing.
>> > >
>> > > Just a warning not to sync LLVM until this is fixed.  I've CC'ed Sean
>> and Duncan as they are probably the best people to fix this, but if anyone
>> else knows how to fix it, feel free.
>> >
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20141209/948cf156/attachment.html>


More information about the lldb-dev mailing list