Anonymous recursive type somehow triggers an already imported assertion.
The crux of the problem is that LLDB uses multiple threads, this makes debugging much harder.
egbomrt@elxajwqyp12|~/WORK/llvm2/git/llvm/tools/lldb/test on remotes/origin/release_60
± python dotest.py --executable ~/WORK/llvm2/build/release_assert/bin/lldb -p TestRecursiveTypes.py ../packages/Python/lldbsuite/test/ -v
['dotest.py', '--executable', '/home/egbomrt/WORK/llvm2/build/release_assert/bin/lldb', '-p', 'TestRecursiveTypes.py', '../packages/Python/lldbsuite/test/', '-v']
LLDB library dir: /home/egbomrt/WORK/llvm2/build/release_assert/bin
LLDB import library dir: /home/egbomrt/WORK/llvm2/build/release_assert/bin
lldb version 6.0.0 (git@github.com:llvm-mirror/lldb.git revision 50b0daa322b7e77c6064e0327cb0824d8f2bbba1)
clang revision 9dfc1095a34258acf8dbc38b1978cc2671b4e2c0
llvm revision 089d4c0c490687db6c75f1d074e99c4d42936a50
Libc++ tests will not be run because: Unable to find libc++ installation
Session logs for test failures/errors/unexpected successes will go into directory '2018-06-29-18_04_04'
Command invoked: dotest.py --executable /home/egbomrt/WORK/llvm2/build/release_assert/bin/lldb -p TestRecursiveTypes.py ../packages/Python/lldbsuite/test/ -v
compiler=clang
Configuration: arch=x86_64 compiler=clang
----------------------------------------------------------------------
Collected 6 tests
1: test_recursive_type_1_dwarf (TestRecursiveTypes.RecursiveTypesTestCase)
Test that recursive structs are displayed correctly. ... ok
2: test_recursive_type_1_dwo (TestRecursiveTypes.RecursiveTypesTestCase)
Test that recursive structs are displayed correctly. ... ok
3: test_recursive_type_1_gmodules (TestRecursiveTypes.RecursiveTypesTestCase)
Test that recursive structs are displayed correctly. ... ok
4: test_recursive_type_2_dwarf (TestRecursiveTypes.RecursiveTypesTestCase)
Test that recursive structs are displayed correctly. ... python: ../../git/llvm/tools/clang/lib/AST/ASTImporter.cpp:7766: clang::Decl *clang::ASTImporter::MapImported(clang::Decl *, clang::Decl *): Assertion `(Pos == ImportedDecls.end() || Pos->second == To) && "Try to import an already imported Decl"' failed.
Stack dump:
0. HandleCommand(command = "print tpi")
[1] 30622 abort python dotest.py --executable ~/WORK/llvm2/build/release_assert/bin/lldb -p
-> [134]
Anonymous recursive type somehow triggers an already imported assertion. The crux of the problem is that LLDB uses multiple threads, this makes debugging much harder.