带有多个分层类和结构的Clang崩溃?

时间:2019-02-04 07:09:30

标签: c++ clang llvm llvm-clang

我的项目由多个层次结构和类组成,其中一些的最大层次结构约为900。Clang似乎做得不好,并且崩溃了。重新编译后,它将继续编译,但是会再次崩溃,并显示类似的输出。

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   clang                           0x0000000107e52305 clang::CodeGen::CodeGenFunction::GetAddressOfBaseClass(clang::CodeGen::Address, clang::CXXRecordDecl const*, clang::CXXBaseSpecifier const* const*, clang::CXXBaseSpecifier const* const*, bool, clang::SourceLocation) + 117
1   clang                           0x000000010706afc1 clang::CodeGen::CodeGenFunction::EmitPointerWithAlignment(clang::Expr const*, clang::CodeGen::LValueBaseInfo*, clang::CodeGen::TBAAAccessInfo*) + 929
2   clang                           0x000000010704e3cf (anonymous namespace)::ScalarExprEmitter::VisitCastExpr(clang::CastExpr*) + 1103
3   clang                           0x000000010704703e clang::CodeGen::CodeGenFunction::EmitScalarInit(clang::Expr const*, clang::ValueDecl const*, clang::CodeGen::LValue, bool) + 494
4   clang                           0x0000000107046c4a clang::CodeGen::CodeGenFunction::EmitExprAsInit(clang::Expr const*, clang::ValueDecl const*, clang::CodeGen::LValue, bool) + 186
5   clang                           0x0000000107e4fb1b clang::CodeGen::CodeGenFunction::EmitInitializerForField(clang::FieldDecl*, clang::CodeGen::LValue, clang::Expr*) + 139
6   clang                           0x0000000107e4f333 EmitMemberInitializer(clang::CodeGen::CodeGenFunction&, clang::CXXRecordDecl const*, clang::CXXCtorInitializer*, clang::CXXConstructorDecl const*, clang::CodeGen::FunctionArgList&) + 451
7   clang                           0x0000000107e4e7ba clang::CodeGen::CodeGenFunction::EmitCtorPrologue(clang::CXXConstructorDecl const*, clang::CXXCtorType, clang::CodeGen::FunctionArgList&) + 2762
8   clang                           0x0000000107e4d248 clang::CodeGen::CodeGenFunction::EmitConstructorBody(clang::CodeGen::FunctionArgList&) + 264
9   clang                           0x0000000107015e6e clang::CodeGen::CodeGenFunction::GenerateCode(clang::GlobalDecl, llvm::Function*, clang::CodeGen::CGFunctionInfo const&) + 734
10  clang                           0x0000000107e4cf86 clang::CodeGen::CodeGenModule::codegenCXXStructor(clang::CXXMethodDecl const*, clang::CodeGen::StructorType) + 374
11  clang                           0x0000000107e4cb77 (anonymous namespace)::ItaniumCXXABI::emitCXXStructor(clang::CXXMethodDecl const*, clang::CodeGen::StructorType) + 807
12  clang                           0x0000000106ff88e2 clang::CodeGen::CodeGenModule::EmitGlobalDefinition(clang::GlobalDecl, llvm::GlobalValue*) + 258
13  clang                           0x00000001070c08c7 clang::CodeGen::CodeGenModule::EmitDeferred() + 183
14  clang                           0x00000001070c08ef clang::CodeGen::CodeGenModule::EmitDeferred() + 223
15  clang                           0x00000001070bd24c clang::CodeGen::CodeGenModule::Release() + 28
16  clang                           0x00000001070bd1d8 (anonymous namespace)::CodeGeneratorImpl::HandleTranslationUnit(clang::ASTContext&) + 40
17  clang                           0x00000001070bcabb clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) + 59
18  clang                           0x0000000106e29e79 clang::ParseAST(clang::Sema&, bool, bool) + 249
19  clang                           0x0000000106e2733a clang::FrontendAction::Execute() + 42
20  clang                           0x0000000106dec9fc clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 524
21  clang                           0x0000000106dea58e clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 2974
22  clang                           0x0000000106dc3b47 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) + 1591
23  clang                           0x0000000106dbed86 main + 5638
24  libdyld.dylib                   0x00007fff60a22085 start + 1

根据我的阅读,该语言最多允许此处提到的16,384个直接和间接基类-https://stackoverflow.com/a/20405380/1514605

这是铛或设计问题吗?

0 个答案:

没有答案