With these fixes to source/Expression, I'm now getting this error
when building with gcc 4.5.1:
make[4]: Entering directory `/home/dawn/dev/llvm_svnRlldb/tools/lldb/source/Expression'
llvm[4]: Compiling ClangASTSource.cpp for Debug+Asserts build
In file included from /usr/lib/gcc/i686-redhat-linux/4.5.1/../../../../include/c++/4.5.1/utility:71:0,
from /home/dawn/dev/llvm_svnRlldb/include/llvm/ADT/StringRef.h:15,
from /home/dawn/dev/llvm_svnRlldb/include/llvm/ADT/StringMap.h:17,
from /home/dawn/dev/llvm_svnRlldb/tools/lldb/source/Expression/../../../clang/include/clang/Basic/IdentifierTable.h:21,
from /home/dawn/dev/llvm_svnRlldb/tools/lldb/source/Expression/../../../clang/include/clang/AST/ASTContext.h:18,
from ClangASTSource.cpp:11:
/usr/lib/gcc/i686-redhat-linux/4.5.1/../../../../include/c++/4.5.1/bits/stl_pair.h: In instantiation of 'std::pair<lldb_private::IntrusiveSharingPtr<lldb_private::Module>, lldb_private::ClangNamespaceDecl>':
/usr/lib/gcc/i686-redhat-linux/4.5.1/../../../../include/c++/4.5.1/bits/stl_tree.h:383:2: instantiated from 'void std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_destroy_node(std::_Rb_tree_node<_Val>*) [with _Key = const clang::NamespaceDecl*, _Val = std::pair<const clang::NamespaceDecl* const, lldb_private::SharingPtr<std::vector<std::pair<lldb_private::IntrusiveSharingPtr<lldb_private::Module>, lldb_private::ClangNamespaceDecl> > > >, _KeyOfValue = std::_Select1st<std::pair<const clang::NamespaceDecl* const, lldb_private::SharingPtr<std::vector<std::pair<lldb_private::IntrusiveSharingPtr<lldb_private::Module>, lldb_private::ClangNamespaceDecl> > > > >, _Compare = std::less<const clang::NamespaceDecl*>, _Alloc = std::allocator<std::pair<const clang::NamespaceDecl* const, lldb_private::SharingPtr<std::vector<std::pair<lldb_private::IntrusiveSharingPtr<lldb_private::Module>, lldb_private::ClangNamespaceDecl> > > > >, std::_Rb_tree_node<_Val>* = std::_Rb_tree_node<std::pair<const clang::NamespaceDecl* const, lldb_private::SharingPtr<std::vector<std::pair<lldb_private::IntrusiveSharingPtr<lldb_private::Module>, lldb_private::ClangNamespaceDecl> > > > >*]'
/usr/lib/gcc/i686-redhat-linux/4.5.1/../../../../include/c++/4.5.1/bits/stl_tree.h:990:4: instantiated from 'void std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_erase(std::_Rb_tree_node<_Val>*) [with _Key = const clang::NamespaceDecl*, _Val = std::pair<const clang::NamespaceDecl* const, lldb_private::SharingPtr<std::vector<std::pair<lldb_private::IntrusiveSharingPtr<lldb_private::Module>, lldb_private::ClangNamespaceDecl> > > >, _KeyOfValue = std::_Select1st<std::pair<const clang::NamespaceDecl* const, lldb_private::SharingPtr<std::vector<std::pair<lldb_private::IntrusiveSharingPtr<lldb_private::Module>, lldb_private::ClangNamespaceDecl> > > > >, _Compare = std::less<const clang::NamespaceDecl*>, _Alloc = std::allocator<std::pair<const clang::NamespaceDecl* const, lldb_private::SharingPtr<std::vector<std::pair<lldb_private::IntrusiveSharingPtr<lldb_private::Module>, lldb_private::ClangNamespaceDecl> > > > >, std::_Rb_tree_node<_Val>* = std::_Rb_tree_node<std::pair<const clang::NamespaceDecl* const, lldb_private::SharingPtr<std::vector<std::pair<lldb_private::IntrusiveSharingPtr<lldb_private::Module>, lldb_private::ClangNamespaceDecl> > > > >*]'
/usr/lib/gcc/i686-redhat-linux/4.5.1/../../../../include/c++/4.5.1/bits/stl_tree.h:614:9: instantiated from 'std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::~_Rb_tree() [with _Key = const clang::NamespaceDecl*, _Val = std::pair<const clang::NamespaceDecl* const, lldb_private::SharingPtr<std::vector<std::pair<lldb_private::IntrusiveSharingPtr<lldb_private::Module>, lldb_private::ClangNamespaceDecl> > > >, _KeyOfValue = std::_Select1st<std::pair<const clang::NamespaceDecl* const, lldb_private::SharingPtr<std::vector<std::pair<lldb_private::IntrusiveSharingPtr<lldb_private::Module>, lldb_private::ClangNamespaceDecl> > > > >, _Compare = std::less<const clang::NamespaceDecl*>, _Alloc = std::allocator<std::pair<const clang::NamespaceDecl* const, lldb_private::SharingPtr<std::vector<std::pair<lldb_private::IntrusiveSharingPtr<lldb_private::Module>, lldb_private::ClangNamespaceDecl> > > > >]'
/usr/lib/gcc/i686-redhat-linux/4.5.1/../../../../include/c++/4.5.1/bits/stl_map.h:87:5: instantiated from here
/usr/lib/gcc/i686-redhat-linux/4.5.1/../../../../include/c++/4.5.1/bits/stl_pair.h:77:11: error: 'std::pair<_T1, _T2>::second' has incomplete type
/home/dawn/dev/llvm_svnRlldb/tools/lldb/source/Expression/../../include/lldb/lldb-forward.h:45:9: error: forward declaration of 'struct lldb_private::ClangNamespaceDecl'
/bin/rm: cannot remove `/home/dawn/dev/llvm_svnRlldb/tools/lldb/source/Expression/Debug+Asserts/ClangASTSource.d.tmp': No such file or directory
make[4]: *** [/home/dawn/dev/llvm_svnRlldb/tools/lldb/source/Expression/Debug+Asserts/ClangASTSource.o] Error 1
make[4]: Leaving directory `/home/dawn/dev/llvm_svnRlldb/tools/lldb/source/Expression'
make[3]: *** [all] Error 1
make[3]: Leaving directory `/home/dawn/dev/llvm_svnRlldb/tools/lldb/source'
make[2]: *** [all] Error 1
make[2]: Leaving directory `/home/dawn/dev/llvm_svnRlldb/tools/lldb'
make[1]: *** [all] Error 1
make[1]: Leaving directory `/home/dawn/dev/llvm_svnRlldb/tools'
make: *** [all] Error 1
I guess clang didn't catch this?
-Dawn