Bug#999474: libclang-cpp13: segmentation fault (and corrupted stack) while compiling some OpenCL kernel with pocl on i386

Andreas Beckmann anbe at debian.org
Thu Nov 11 20:09:29 GMT 2021


Control: reassign -1 libclang-cpp13 1:13.0.0-9
Control: retitle -1 libclang-cpp13: segmentation fault (and corrupted stack) while compiling some OpenCL kernel with pocl on i386

I managed to get a bit of a trace using ltrace -x '*' to also
catch the dlopen()ed symbols. I'm pasting just the very last
screen of output (from probably several gigabytes).
So we are segfaulting definitively somewhere inside libclang-cpp.so

# POCL_DEVICES=basic POCL_BUILDING=1 OCL_ICD_VENDORS="$(pwd)/ocl-vendors" ltrace -x '*' -C ./tests/kernel/kernel test_ilogb

<... clang::TokenLexer::Lex(clang::Token&) resumed> )                                                                                                           = 0x194e01
<... clang::Preprocessor::Lex(clang::Token&) resumed> )                                                                                                         = 0
clang::Parser::ParseExpression(clang::Parser::TypeCastState)@libclang-cpp.so.13(0xff9a7340, 0x56f121f0, 0, 0xf537b15f <unfinished ...>
clang::Parser::ParseAssignmentExpression(clang::Parser::TypeCastState)@libclang-cpp.so.13(0xff9a72d8, 0x56f121f0, 0, 0xf5308b2b <unfinished ...>
clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, bool&, clang::Parser::TypeCastState, bool, bool*)@libclang-cpp.so.13(0xff9a7288, 0x56f121f0, 0, 0 <unfinished ...>
clang::Preprocessor::Lex(clang::Token&)@libclang-cpp.so.13(0x56eddb7c, 0x56f121f8, 0xff9a68e0, 0xf530dfbf <unfinished ...>
clang::TokenLexer::Lex(clang::Token&)@libclang-cpp.so.13(0x56f3df40, 0x56f121f8, 0xe2d97501, 0x56f121f4 <unfinished ...>
clang::tok::isAnnotation(clang::tok::TokenKind)@libclang-cpp.so.13(64, 0xf7babff4, 0xff9a76e0, 0xf52bf2dc)                                                      = -512
<... clang::TokenLexer::Lex(clang::Token&) resumed> )                                                                                                           = 1
<... clang::Preprocessor::Lex(clang::Token&) resumed> )                                                                                                         = 0
clang::Sema::ActOnIdExpression(clang::Scope*, clang::CXXScopeSpec&, clang::SourceLocation, clang::UnqualifiedId&, bool, bool, clang::CorrectionCandidateCallback*, bool, clang::Token*)@libclang-cpp.so.13(0xff9a6ad8, 0x56f33290, 0x56e81c20, 0xff9a6d50 <unfinished ...>
clang::Sema::DecomposeUnqualifiedId(clang::UnqualifiedId const&, clang::TemplateArgumentListInfo&, clang::DeclarationNameInfo&, clang::TemplateArgumentListInfo const*&)@libclang-cpp.so.13(0x56f33290, 0xff9a7198, 0xff9a6790, 0xff9a66c8 <unfinished ...>
clang::Sema::GetNameFromUnqualifiedId(clang::UnqualifiedId const&)@libclang-cpp.so.13(0xff9a65e8, 0x56f33290, 0xff9a7198, 0xf5d16f4c)                           = 0xff9a65e8
<... clang::Sema::DecomposeUnqualifiedId(clang::UnqualifiedId const&, clang::TemplateArgumentListInfo&, clang::DeclarationNameInfo&, clang::TemplateArgumentListInfo const*&) resumed> ) = 0xe2d97500
clang::LookupResult::configure()@libclang-cpp.so.13(0xff9a6720, 0, 0, 0xf5d0fbcf)                                                                               = -27
clang::Sema::getCurMethodDecl()@libclang-cpp.so.13(0x56f33290, 0, 0, 0xf5d0fbcf <unfinished ...>
clang::Sema::getFunctionLevelDeclContext()@libclang-cpp.so.13(0x56f33290, 0xf7babff4, 0xf7babff4, 0xf5d0fedd)                                                   = 0x5734f5b0
<... clang::Sema::getCurMethodDecl() resumed> )                                                                                                                 = 0
clang::Sema::LookupParsedName(clang::LookupResult&, clang::Scope*, clang::CXXScopeSpec*, bool, bool)@libclang-cpp.so.13(0x56f33290, 0xff9a6720, 0x56e81c20, 0xff9a6d50 <unfinished ...>
clang::Sema::LookupName(clang::LookupResult&, clang::Scope*, bool)@libclang-cpp.so.13(0x56f33290, 0xff9a6720, 0x56e81c20, 1 <unfinished ...>
clang::IdentifierResolver::begin(clang::DeclarationName)@libclang-cpp.so.13(0xff9a65d0, 0x56f33a94, 0x5735ceb0, 0)                                              = 0xff9a65d0
clang::LookupResult::resolveKind()@libclang-cpp.so.13(0xff9a6720, 0x57350480, 0x5735ceb0, 0)                                                                    = 0xe2d97500
<... clang::Sema::LookupName(clang::LookupResult&, clang::Scope*, bool) resumed> )                                                                              = 1
<... clang::Sema::LookupParsedName(clang::LookupResult&, clang::Scope*, clang::CXXScopeSpec*, bool, bool) resumed> )                                            = 1
clang::Sema::UseArgumentDependentLookup(clang::CXXScopeSpec const&, clang::LookupResult const&, bool)@libclang-cpp.so.13(0x56f33290, 0xff9a6d50, 0xff9a6720, 0) = 0
clang::Sema::BuildDeclarationNameExpr(clang::CXXScopeSpec const&, clang::LookupResult&, bool, bool)@libclang-cpp.so.13(0xff9a6ad8, 0x56f33290, 0xff9a6d50, 0xff9a6720 <unfinished ...>
clang::Sema::BuildDeclarationNameExpr(clang::CXXScopeSpec const&, clang::DeclarationNameInfo const&, clang::NamedDecl*, clang::NamedDecl*, clang::TemplateArgumentListInfo const*, bool)@libclang-cpp.so.13(0xff9a6ad8, 0x56f33290, 0xff9a6d50, 0xff9a6764 <unfinished ...>
clang::Sema::DiagnoseUseOfDecl(clang::NamedDecl*, llvm::ArrayRef<clang::SourceLocation>, clang::ObjCInterfaceDecl const*, bool, bool, clang::ObjCInterfaceDecl*)@libclang-cpp.so.13(0x56f33290, 0x57350480, 0xff9a6520, 1 <unfinished ...>
clang::Sema::diagnoseArgIndependentDiagnoseIfAttrs(clang::NamedDecl const*, clang::SourceLocation)@libclang-cpp.so.13(0x56f33290, 0x57350480, 0x8019e1b8, 0xf5d0ac9f) = 0
clang::Sema::DiagnoseAvailabilityOfDecl(clang::NamedDecl*, llvm::ArrayRef<clang::SourceLocation>, clang::ObjCInterfaceDecl const*, bool, bool, clang::ObjCInterfaceDecl*)@libclang-cpp.so.13(0x56f33290, 0x57350480, 0xff9a6520, 1 <unfinished ...>
clang::Decl::getAvailability(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, llvm::VersionTuple, llvm::StringRef*) const at libclang-cpp.so.13(0x57350480, 0xff9a60e0, 0, 0 <unfinished ...>
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::swap(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@libstdc++.so.6(0xff9a60e0, 0xff9a5f80, 0xe2d97500, 0xf556678c) = 0xff9a60e0
<... clang::Decl::getAvailability(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, llvm::VersionTuple, llvm::StringRef*) const resumed> ) = 0
<... clang::Sema::DiagnoseAvailabilityOfDecl(clang::NamedDecl*, llvm::ArrayRef<clang::SourceLocation>, clang::ObjCInterfaceDecl const*, bool, bool, clang::ObjCInterfaceDecl*) resumed> ) = 0xe2d97500
clang::Sema::getCurFunctionDecl()@libclang-cpp.so.13(0x56f33290, 0, 0, 0 <unfinished ...>
clang::Sema::getFunctionLevelDeclContext()@libclang-cpp.so.13(0x56f33290, 0x57350480, 0xf7babff4, 0xf5d0bae5)                                                   = 0x5734f5b0
<... clang::Sema::getCurFunctionDecl() resumed> )                                                                                                               = 0x5734f588
<... clang::Sema::DiagnoseUseOfDecl(clang::NamedDecl*, llvm::ArrayRef<clang::SourceLocation>, clang::ObjCInterfaceDecl const*, bool, bool, clang::ObjCInterfaceDecl*) resumed> ) = 0
clang::QualType::getNonPackExpansionType() const at libclang-cpp.so.13(0xff9a64f8, 0xff9a6560, 0, 0)                                                               = 0xff9a64f8
clang::Sema::getCapturedDeclRefType(clang::VarDecl*, clang::SourceLocation)@libclang-cpp.so.13(0xff9a64f8, 0x56f33290, 0x57350480, 0x8019e1b8 <unfinished ...>
clang::Sema::tryCaptureVariable(clang::VarDecl*, clang::SourceLocation, clang::Sema::TryCaptureKind, clang::SourceLocation, bool, clang::QualType&, clang::QualType&, unsigned int const*)@libclang-cpp.so.13(0x56f33290, 0x57350480, 0x8019e1b8, 0) = 0xf7babf01
<... clang::Sema::getCapturedDeclRefType(clang::VarDecl*, clang::SourceLocation) resumed> )                                                                     = 0xff9a64f8
clang::Sema::BuildDeclRefExpr(clang::ValueDecl*, clang::QualType, clang::ExprValueKind, clang::DeclarationNameInfo const&, clang::CXXScopeSpec const*, clang::NamedDecl*, clang::SourceLocation, clang::TemplateArgumentListInfo const*)@libclang-cpp.so.13(0x56f33290, 0x57350480, 0x56f50818, 1 <unfinished ...>
clang::CXXScopeSpec::getWithLocInContext(clang::ASTContext&) const at libclang-cpp.so.13(0xff9a6440, 0xff9a6d50, 0x56ea9810, 0xf5d1662c)                           = 0xff9a6440
clang::Sema::BuildDeclRefExpr(clang::ValueDecl*, clang::QualType, clang::ExprValueKind, clang::DeclarationNameInfo const&, clang::NestedNameSpecifierLoc, clang::NamedDecl*, clang::SourceLocation, clang::TemplateArgumentListInfo const*)@libclang-cpp.so.13(0x56f33290, 0x57350480, 0x56f50818, 1 <unfinished ...>
clang::Sema::tryCaptureVariable(clang::VarDecl*, clang::SourceLocation, clang::Sema::TryCaptureKind, clang::SourceLocation, bool, clang::QualType&, clang::QualType&, unsigned int const*)@libclang-cpp.so.13(0x56f33290, 0x57350480, 0x8019e1b8, 0) = 0xf7babf01
clang::Sema::getNonOdrUseReasonInCurrentContext(clang::ValueDecl*)@libclang-cpp.so.13(0x56f33290, 0x57350480, 0x56f121f8, 0xf5d166fc)                           = 0
clang::DeclRefExpr::Create(clang::ASTContext const&, clang::NestedNameSpecifierLoc, clang::SourceLocation, clang::ValueDecl*, bool, clang::DeclarationNameInfo const&, clang::QualType, clang::ExprValueKind, clang::NamedDecl*, clang::TemplateArgumentListInfo const*, clang::NonOdrUseReason)@libclang-cpp.so.13(0x56ea9810, 0, 0, 0 <unfinished ...>
clang::DeclRefExpr::DeclRefExpr(clang::ASTContext const&, clang::NestedNameSpecifierLoc, clang::SourceLocation, clang::ValueDecl*, bool, clang::DeclarationNameInfo const&, clang::NamedDecl*, clang::TemplateArgumentListInfo const*, clang::QualType, clang::ExprValueKind, clang::NonOdrUseReason)@libclang-cpp.so.13(0x5735098c, 0x56ea9810, 0, 0 <unfinished ...>
clang::computeDependence(clang::DeclRefExpr*, clang::ASTContext const&)@libclang-cpp.so.13(0x5735098c, 0x56ea9810, 0x57350838, 0xf55ce83c <unfinished ...>
clang::Decl::isParameterPack() const at libclang-cpp.so.13(0x57350480, 0, 0, 0xff9a6288callstack_push_symfunc: Error: call nesting too deep!
Aborted (core dumped)



More information about the Pkg-llvm-team mailing list