bug in clang c++ parser

I just submitted an Xcode 4.5 bug report to apple: #12020687.

Since it appears to be crashing in the parsing of C++ symbols in libc++'s abi support, I thought there might be some interest in it from the clang folks. I’m not sure if this is the correct list to post this, if not let me know which list you want it on. Below is the crash log. If someone has interest in this project, let me know and I’ll send it to you. It has a few boost dependencies that you’ll have to supply yourself.

xcode version: Version 4.5 (4G125j)

Apple clang version 4.0 (tags/Apple/clang-421.10.53) (based on LLVM 3.1svn)

-James

Thread 31 Crashed::
0 libc++abi.dylib 0x00007fff8ca35b86 __cxxabiv1::__libcxxabi::__sub::is_function() const + 8
1 libc++abi.dylib 0x00007fff8ca2e20e bool __cxxabiv1::__libcxxabi::__demangle_tree::__make<__cxxabiv1::__libcxxabi::__cv_qualifiers, unsigned int, __cxxabiv1::__libcxxabi::__node*>(unsigned int, __cxxabiv1::__libcxxabi::__node*) + 96
2 libc++abi.dylib 0x00007fff8ca26505 __cxxabiv1::__libcxxabi::__demangle_tree::__parse_type(char const*, char const*, bool, bool) + 115
3 libc++abi.dylib 0x00007fff8ca26677 __cxxabiv1::__libcxxabi::__demangle_tree::__parse_type(char const*, char const*, bool, bool) + 485
4 libc++abi.dylib 0x00007fff8ca27f24 __cxxabiv1::__libcxxabi::__demangle_tree::__parse_operator_name(char const*, char const*, int*) + 1078
5 libc++abi.dylib 0x00007fff8ca2b5da __cxxabiv1::__libcxxabi::__demangle_tree::__parse_nested_name(char const*, char const*) + 730
6 libc++abi.dylib 0x00007fff8ca275a2 __cxxabiv1::__libcxxabi::__demangle_tree::__parse_name(char const*, char const*) + 62
7 libc++abi.dylib 0x00007fff8ca271b0 __cxxabiv1::__libcxxabi::__demangle_tree::__parse_encoding(char const*, char const*) + 40
8 libc++abi.dylib 0x00007fff8ca2b9fe __cxxabiv1::__libcxxabi::__demangle_tree::__parse() + 68
9 libc++abi.dylib 0x00007fff8ca2ba8d __cxxabiv1::__libcxxabi::__demangle(char const*, char*, unsigned long) + 32
10 libc++abi.dylib 0x00007fff8ca2bce6 __cxa_demangle + 112
11 com.apple.LLDB.framework 0x0000000127902b1b lldb_private::Mangled::GetDemangledName() const + 127
12 com.apple.LLDB.framework 0x00000001279f2f4d lldb_private::Symtab::InitNameIndexes() + 209
13 com.apple.LLDB.framework 0x00000001279f368b lldb_private::Symtab::AppendSymbolIndexesWithName(lldb_private::ConstString const&, std::vector<unsigned int, std::allocator >&) + 103
14 com.apple.LLDB.framework 0x00000001279917c4 ObjectFileMachO::ParseSymtab(bool) + 9752
15 com.apple.LLDB.framework 0x000000012798f128 ObjectFileMachO::GetSymtab() + 132
16 com.apple.LLDB.framework 0x00000001279d32e3 SymbolFileSymtab::CalculateAbilities() + 43
17 com.apple.LLDB.framework 0x00000001279d2319 lldb_private::SymbolFile::GetAbilities() + 29
18 com.apple.LLDB.framework 0x00000001279f0ba4 lldb_private::SymbolFile::FindPlugin(lldb_private::ObjectFile*) + 76
19 com.apple.LLDB.framework 0x00000001279f0e6c lldb_private::SymbolVendor::AddSymbolFileRepresentation(std::tr1::shared_ptr<lldb_private::ObjectFile> const&) + 84
20 com.apple.LLDB.framework 0x00000001279d47be SymbolVendorMacOSX::CreateInstance(std::tr1::shared_ptr<lldb_private::Module> const&) + 2112
21 com.apple.LLDB.framework 0x00000001279f0d2b lldb_private::SymbolVendor::FindPlugin(std::tr1::shared_ptr<lldb_private::Module> const&) + 51
22 com.apple.LLDB.framework 0x0000000127903f88 lldb_private::Module::GetSymbolVendor(bool) + 110
23 com.apple.LLDB.framework 0x0000000127903ebe lldb_private::Module::GetNumCompileUnits() + 66
24 com.apple.LLDB.framework 0x00000001278aeacd lldb_private::BreakpointResolverFileLine::SearchCallback(lldb_private::SearchFilter&, lldb_private::SymbolContext&, lldb_private::Address*, bool) + 121
25 com.apple.LLDB.framework 0x0000000127914a34 lldb_private::SearchFilter::DoModuleIteration(lldb_private::SymbolContext const&, lldb_private::Searcher&) + 346
26 com.apple.LLDB.framework 0x00000001279148a5 lldb_private::SearchFilter::Search(lldb_private::Searcher&) + 127
27 com.apple.LLDB.framework 0x0000000127a192f4 lldb_private::Target::CreateBreakpoint(std::tr1::shared_ptr<lldb_private::SearchFilter>&, std::tr1::shared_ptr<lldb_private::BreakpointResolver>&, bool) + 318
28 com.apple.LLDB.framework 0x0000000127a19413 lldb_private::Target::CreateBreakpoint(lldb_private::FileSpecList const*, lldb_private::FileSpec const&, unsigned int, bool, lldb_private::LazyBool, bool) + 147
29 com.apple.LLDB.framework 0x0000000126b39995 lldb::SBTarget::BreakpointCreateByLocation(lldb::SBFileSpec const&, unsigned int) + 203
30 com.apple.LLDB.framework 0x0000000126b39898 lldb::SBTarget::BreakpointCreateByLocation(char const*, unsigned int) + 58
31 com.apple.dt.dbg.DebuggerLLDB 0x0000000112b81c79 -[DBGLLDBSession _createBreakpointFromFileBreakpoint:] + 150
32 com.apple.dt.dbg.DebuggerLLDB 0x0000000112b8183d -[DBGLLDBSession createBreakpoint:] + 243
33 com.apple.dt.dbg.DebuggerFoundation 0x000000011346d41a -[DBGDebugSession _createBreakpointIfNeccessary:] + 77
34 com.apple.dt.dbg.DebuggerFoundation 0x000000011346da21 -[DBGDebugSession _handleBreakpointActivationChanged] + 191
35 com.apple.dt.dbg.DebuggerLLDB 0x0000000112b7e76b DBGLLDBSessionThread(void*) + 1778
36 com.apple.LLDB.framework 0x000000012795f55c ThreadCreateTrampoline(void*) + 91
37 libsystem_c.dylib 0x00007fff8db97782 _pthread_start + 327
38 libsystem_c.dylib 0x00007fff8db841c1 thread_start + 13

I just submitted an Xcode 4.5 bug report to apple: #12020687.

Thanks for the report.

Since it appears to be crashing in the parsing of C++ symbols in libc++'s
abi support, I thought there might be some interest in it from the clang
folks. I'm not sure if this is the correct list to post this, if not let me
know which list you want it on. Below is the crash log. If someone has
interest in this project, let me know and I'll send it to you. It has a few
boost dependencies that you'll have to supply yourself.

This list is a general discussion list for developing and using the
open-source clang/libc++/libc++abi. Bug reports should go to the
appropriate bug tracker (http://bugreporter.apple.com for Apple
releases), and the right place to discuss versions of clang
distributed with Xcode is the Apple developer forums
(http://devforums.apple.com).

-Eli

I'm waiting for the dev support drone to write back to me and tell me he can't get it to build because he doesn't have boost.

Thanks, Fix committed revision 161267.

Howard