<div dir="ltr">The lldb top-of-tree currently fails with an error adding a Clang attribute. It appears to be a result of this Clang change yesterday (my emphasis):<div><br></div><div><br><div><br></div><div><div>* 5914278..: Aaron Ballman 2014-01-16 Distinguish between attributes explicitly written at the request of the user, and attributes implicitly generated to assist in bookkeeping by the compiler. This is done so by table generating a CreateImplicit method for each attribute.</div>
<div> commit 591427889ead8b7c4c3211ef8cc55a9501eac064</div><div> Author: Aaron Ballman <<a href="mailto:aaron@aaronballman.com">aaron@aaronballman.com</a>></div><div> Date: Thu Jan 16 13:03:14 2014 +0000</div><div>
<br></div><div> Distinguish between attributes explicitly written at the request of the user, and attributes implicitly generated to assist in bookkeeping by the compiler. This is done so by table generating a CreateImplicit method for each attribute.</div>
<div><br></div><div> <b> Additionally, remove the optional nature of the spelling list index when creating attributes. This is supported by table generating a Spelling enumeration when the spellings for an attribute are distinct enough to warrant it.</b></div>
<div><br></div><div> git-svn-id: <a href="https://llvm.org/svn/llvm-project/cfe/trunk@199378">https://llvm.org/svn/llvm-project/cfe/trunk@199378</a> 91177308-0d34-0410-b5e6-96231b3b80d8</div></div><div><br></div><div><br>
</div><div><br></div><div>The error is attached. I'm not sure how to get the new spelling list parameter (it's available as attribute_list.getAttributeSpellingListIndex() if the right attribute list is handy) or if one of the other candidates will work instead.</div>
<div><br></div><div>Thanks,</div><div> Steve</div><div><br></div><div><div>/usr/local/google/home/spucci/lldb/work2/llvm/tools/lldb/source/Symbol/ClangASTType.cpp: In member function ‘clang::CXXMethodDecl* lldb_private::ClangASTType::AddMethodToCXXRecordType(const char*, const lldb_private::ClangASTType&, lldb::AccessType, bool, bool, bool, bool, bool, bool)’:</div>
<div>/usr/local/google/home/spucci/lldb/work2/llvm/tools/lldb/source/Symbol/ClangASTType.cpp:4748:79: error: no matching function for call to ‘clang::UsedAttr::UsedAttr(clang::SourceRange, clang::ASTContext&)’</div><div>
cxx_method_decl->addAttr(::new (*m_ast) UsedAttr(SourceRange(), *m_ast));</div><div> ^</div><div>/usr/local/google/home/spucci/lldb/work2/llvm/tools/lldb/source/Symbol/ClangASTType.cpp:4748:79: note: candidates are:</div>
<div>In file included from /usr/local/google/home/spucci/lldb/work2/llvm/tools/clang/include/clang/AST/Attr.h:144:0,</div><div> from /usr/local/google/home/spucci/lldb/work2/llvm/tools/lldb/source/Symbol/ClangASTType.cpp:16:</div>
<div>/usr/local/google/home/spucci/lldb/work2/build/tools/clang/include/clang/AST/Attrs.inc:5187:3: note: clang::UsedAttr::UsedAttr(clang::SourceRange, clang::ASTContext&, unsigned int)</div><div> UsedAttr(SourceRange R, ASTContext &Ctx</div>
<div> ^</div><div>/usr/local/google/home/spucci/lldb/work2/build/tools/clang/include/clang/AST/Attrs.inc:5187:3: note: candidate expects 3 arguments, 2 provided</div><div>/usr/local/google/home/spucci/lldb/work2/build/tools/clang/include/clang/AST/Attrs.inc:5178:7: note: constexpr clang::UsedAttr::UsedAttr(const clang::UsedAttr&)</div>
<div> class UsedAttr : public InheritableAttr {</div><div> ^</div><div>/usr/local/google/home/spucci/lldb/work2/build/tools/clang/include/clang/AST/Attrs.inc:5178:7: note: candidate expects 1 argument, 2 provided</div>
<div>/usr/local/google/home/spucci/lldb/work2/build/tools/clang/include/clang/AST/Attrs.inc:5178:7: note: constexpr clang::UsedAttr::UsedAttr(clang::UsedAttr&&)</div><div>/usr/local/google/home/spucci/lldb/work2/build/tools/clang/include/clang/AST/Attrs.inc:5178:7: note: candidate expects 1 argument, 2 provided</div>
</div><div><br></div></div></div>