[libcxx-commits] [clang] [libcxx] [Clang] Normalize constraints before checking for satisfaction (PR #161671)
Alexander Kornienko via libcxx-commits
libcxx-commits at lists.llvm.org
Tue Nov 4 02:48:10 PST 2025
alexfh wrote:
Hi @cor3ntin , we've started seeing Clang crashes after this commit. They only reproduce with our Clang header modules setup on a pretty large input. Reduction has been crawling slowly, so I don't expect to get a nice little test case soon (or ever). The crashes are sporadic, but reproduce more or less consistently when clang is built with msan:
```
==4090==WARNING: MemorySanitizer: use-of-uninitialized-value
#0 0x558de04647e5 in clang::Sema::getNormalizedAssociatedConstraints(llvm::PointerUnion<clang::NamedDecl const*, clang::concepts::NestedRequirement const*>, llvm::ArrayRef<clang::AssociatedConstraint>) third_party/llvm/llvm-project/clang/lib/Sema/SemaConcept.cpp:2413:1
#1 0x558de045b248 in CheckConstraintSatisfaction(clang::Sema&, clang::NamedDecl const*, llvm::ArrayRef<clang::AssociatedConstraint>, clang::MultiLevelTemplateArgumentList const&, clang::SourceRange, clang::ConstraintSatisfaction&, clang::Expr**, clang::ConceptReference const*) third_party/llvm/llvm-project/clang/lib/Sema/SemaConcept.cpp:1149:9
#2 0x558de045aa66 in clang::Sema::CheckConstraintSatisfaction(llvm::PointerUnion<clang::NamedDecl const*, clang::concepts::NestedRequirement const*>, llvm::ArrayRef<clang::AssociatedConstraint>, clang::MultiLevelTemplateArgumentList const&, clang::SourceRange, clang::ConstraintSatisfaction&, clang::ConceptReference const*, clang::Expr**) third_party/llvm/llvm-project/clang/lib/Sema/SemaConcept.cpp:1221:7
#3 0x558de046112e in CheckFunctionConstraintsWithoutInstantiation third_party/llvm/llvm-project/clang/lib/Sema/SemaConcept.cpp:1670:18
#4 0x558de046112e in clang::Sema::CheckFunctionTemplateConstraints(clang::SourceLocation, clang::FunctionDecl*, llvm::ArrayRef<clang::TemplateArgument>, clang::ConstraintSatisfaction&) third_party/llvm/llvm-project/clang/lib/Sema/SemaConcept.cpp:1682:12
#5 0x558de151791e in clang::Sema::FinishTemplateArgumentDeduction(clang::FunctionTemplateDecl*, llvm::SmallVectorImpl<clang::DeducedTemplateArgument>&, unsigned int, clang::FunctionDecl*&, clang::sema::TemplateDeductionInfo&, llvm::SmallVectorImpl<clang::Sema::OriginalCallArg> const*, bool, bool, bool, llvm::function_ref<bool (bool)>) third_party/llvm/llvm-project/clang/lib/Sema/SemaTemplateDeduction.cpp:3995:9
#6 0x558de1600704 in operator() third_party/llvm/llvm-project/clang/lib/Sema/SemaTemplateDeduction.cpp:4736:14
#7 0x558de1600704 in void llvm::function_ref<void ()>::callback_fn<clang::Sema::DeduceTemplateArguments(clang::FunctionTemplateDecl*, clang::TemplateArgumentListInfo*, llvm::ArrayRef<clang::Expr*>, clang::FunctionDecl*&, clang::sema::TemplateDeductionInfo&, bool, bool, bool, clang::QualType, clang::Expr::Classification, bool, llvm::function_ref<bool (llvm::ArrayRef<clang::QualType>, bool)>)::$_2>(long) third_party/llvm/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:12
#8 0x558de347d9cc in operator() third_party/llvm/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:12
#9 0x558de347d9cc in runWithSufficientStackSpace third_party/llvm/llvm-project/clang/include/clang/Basic/Stack.h:49:7
#10 0x558de347d9cc in clang::StackExhaustionHandler::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) third_party/llvm/llvm-project/clang/lib/Basic/StackExhaustionHandler.cpp:20:3
#11 0x558de0154faf in clang::Sema::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) third_party/llvm/llvm-project/clang/lib/Sema/Sema.cpp:629:16
#12 0x558de1520980 in clang::Sema::DeduceTemplateArguments(clang::FunctionTemplateDecl*, clang::TemplateArgumentListInfo*, llvm::ArrayRef<clang::Expr*>, clang::FunctionDecl*&, clang::sema::TemplateDeductionInfo&, bool, bool, bool, clang::QualType, clang::Expr::Classification, bool, llvm::function_ref<bool (llvm::ArrayRef<clang::QualType>, bool)>) third_party/llvm/llvm-project/clang/lib/Sema/SemaTemplateDeduction.cpp:4735:3
#13 0x558de11f5306 in AddTemplateOverloadCandidateImmediately(clang::Sema&, clang::OverloadCandidateSet&, clang::FunctionTemplateDecl*, clang::DeclAccessPair, clang::TemplateArgumentListInfo*, llvm::ArrayRef<clang::Expr*>, bool, bool, bool, clang::CallExpr::ADLCallKind, clang::OverloadCandidateParamOrder, bool) third_party/llvm/llvm-project/clang/lib/Sema/SemaOverload.cpp:8012:42
#14 0x558de1217b63 in AddTemplateOverloadCandidate third_party/llvm/llvm-project/clang/lib/Sema/SemaOverload.cpp:11242:3
#15 0x558de1217b63 in clang::OverloadCandidateSet::InjectNonDeducedTemplateCandidates(clang::Sema&) third_party/llvm/llvm-project/clang/lib/Sema/SemaOverload.cpp:11264:7
#16 0x558de11e67f7 in clang::OverloadCandidateSet::BestViableFunction(clang::Sema&, clang::SourceLocation, clang::OverloadCandidate*&) third_party/llvm/llvm-project/clang/lib/Sema/SemaOverload.cpp:11360:3
#17 0x558de0df66ec in clang::Sema::LookupSpecialMember(clang::CXXRecordDecl*, clang::CXXSpecialMemberKind, bool, bool, bool, bool, bool) third_party/llvm/llvm-project/clang/lib/Sema/SemaLookup.cpp:3578:15
#18 0x558de089cceb in lookupCallFromSpecialMember(clang::Sema&, clang::CXXRecordDecl*, clang::CXXSpecialMemberKind, unsigned int, bool) third_party/llvm/llvm-project/clang/lib/Sema/SemaDeclCXX.cpp:7412:12
#19 0x558de081e4ff in findTrivialSpecialMember third_party/llvm/llvm-project/clang/lib/Sema/SemaDeclCXX.cpp:10142:9
#20 0x558de081e4ff in checkTrivialSubobjectCall(clang::Sema&, clang::SourceLocation, clang::QualType, bool, clang::CXXSpecialMemberKind, TrivialSubobjectKind, clang::TrivialABIHandling, bool) third_party/llvm/llvm-project/clang/lib/Sema/SemaDeclCXX.cpp:10210:7
#21 0x558de08214b1 in checkTrivialClassMembers(clang::Sema&, clang::CXXRecordDecl*, clang::CXXSpecialMemberKind, bool, clang::TrivialABIHandling, bool) third_party/llvm/llvm-project/clang/lib/Sema/SemaDeclCXX.cpp:10292:10
#22 0x558de08207fe in clang::Sema::SpecialMemberIsTrivial(clang::CXXMethodDecl*, clang::CXXSpecialMemberKind, clang::TrivialABIHandling, bool) third_party/llvm/llvm-project/clang/lib/Sema/SemaDeclCXX.cpp:10419:8
#23 0x558de0825dc3 in clang::Sema::DeclareImplicitMoveConstructor(clang::CXXRecordDecl*) third_party/llvm/llvm-project/clang/lib/Sema/SemaDeclCXX.cpp:16034:13
#24 0x558de0822aef in clang::Sema::AddImplicitlyDeclaredMembersToClass(clang::CXXRecordDecl*) third_party/llvm/llvm-project/clang/lib/Sema/SemaDeclCXX.cpp:10817:9
#25 0x558de06945a2 in clang::Sema::ActOnFields(clang::Scope*, clang::SourceLocation, clang::Decl*, llvm::ArrayRef<clang::Decl*>, clang::SourceLocation, clang::SourceLocation, clang::ParsedAttributesView const&) third_party/llvm/llvm-project/clang/lib/Sema/SemaDecl.cpp:19889:7
#26 0x558de082259b in clang::Sema::ActOnFinishCXXMemberSpecification(clang::Scope*, clang::SourceLocation, clang::Decl*, clang::SourceLocation, clang::SourceLocation, clang::ParsedAttributesView const&) third_party/llvm/llvm-project/clang/lib/Sema/SemaDeclCXX.cpp:10729:3
#27 0x558ddfa83d11 in clang::Parser::ParseCXXMemberSpecification(clang::SourceLocation, clang::SourceLocation, clang::ParsedAttributes&, unsigned int, clang::Decl*) third_party/llvm/llvm-project/clang/lib/Parse/ParseDeclCXX.cpp:3768:13
#28 0x558ddfa7b9e8 in clang::Parser::ParseClassSpecifier(clang::tok::TokenKind, clang::SourceLocation, clang::DeclSpec&, clang::Parser::ParsedTemplateInfo&, clang::AccessSpecifier, bool, clang::Parser::DeclSpecContext, clang::ParsedAttributes&) third_party/llvm/llvm-project/clang/lib/Parse/ParseDeclCXX.cpp:2174:7
#29 0x558ddfadf814 in clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&, clang::Parser::ParsedTemplateInfo&, clang::AccessSpecifier, clang::Parser::DeclSpecContext, clang::Parser::LateParsedAttrList*, clang::ImplicitTypenameContext) third_party/llvm/llvm-project/clang/lib/Parse/ParseDecl.cpp:4459:7
#30 0x558ddfa8d77a in ParseDeclarationSpecifiers third_party/llvm/llvm-project/clang/include/clang/Parse/Parser.h:1842:12
#31 0x558ddfa8d77a in clang::Parser::ParseCXXClassMemberDeclaration(clang::AccessSpecifier, clang::ParsedAttributes&, clang::Parser::ParsedTemplateInfo&, clang::ParsingDeclRAIIObject*) third_party/llvm/llvm-project/clang/lib/Parse/ParseDeclCXX.cpp:2864:3
#32 0x558ddfa94bea in clang::Parser::ParseCXXClassMemberDeclarationWithPragmas(clang::AccessSpecifier&, clang::ParsedAttributes&, clang::TypeSpecifierType, clang::Decl*) third_party/llvm/llvm-project/clang/lib/Parse/ParseDeclCXX.cpp
#33 0x558ddfa839cb in clang::Parser::ParseCXXMemberSpecification(clang::SourceLocation, clang::SourceLocation, clang::ParsedAttributes&, unsigned int, clang::Decl*) third_party/llvm/llvm-project/clang/lib/Parse/ParseDeclCXX.cpp:3754:7
#34 0x558ddfa7b9e8 in clang::Parser::ParseClassSpecifier(clang::tok::TokenKind, clang::SourceLocation, clang::DeclSpec&, clang::Parser::ParsedTemplateInfo&, clang::AccessSpecifier, bool, clang::Parser::DeclSpecContext, clang::ParsedAttributes&) third_party/llvm/llvm-project/clang/lib/Parse/ParseDeclCXX.cpp:2174:7
#35 0x558ddfadf814 in clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&, clang::Parser::ParsedTemplateInfo&, clang::AccessSpecifier, clang::Parser::DeclSpecContext, clang::Parser::LateParsedAttrList*, clang::ImplicitTypenameContext) third_party/llvm/llvm-project/clang/lib/Parse/ParseDecl.cpp:4459:7
#36 0x558ddf992549 in ParseDeclarationSpecifiers third_party/llvm/llvm-project/clang/include/clang/Parse/Parser.h:1842:12
#37 0x558ddf992549 in clang::Parser::ParseDeclOrFunctionDefInternal(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec&, clang::AccessSpecifier) third_party/llvm/llvm-project/clang/lib/Parse/Parser.cpp:1091:3
#38 0x558ddf991bb9 in clang::Parser::ParseDeclarationOrFunctionDefinition(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*, clang::AccessSpecifier) third_party/llvm/llvm-project/clang/lib/Parse/Parser.cpp:1209:12
#39 0x558ddf98f281 in clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) third_party/llvm/llvm-project/clang/lib/Parse/Parser.cpp:1032:14
#40 0x558ddfa63f04 in clang::Parser::ParseInnerNamespace(llvm::SmallVector<clang::Parser::InnerNamespaceInfo, 4u> const&, unsigned int, clang::SourceLocation&, clang::ParsedAttributes&, clang::BalancedDelimiterTracker&) third_party/llvm/llvm-project/clang/lib/Parse/ParseDeclCXX.cpp:240:7
#41 0x558ddfa614c7 in clang::Parser::ParseNamespace(clang::DeclaratorContext, clang::SourceLocation&, clang::SourceLocation) third_party/llvm/llvm-project/clang/lib/Parse/ParseDeclCXX.cpp:218:3
#42 0x558ddfad1334 in clang::Parser::ParseDeclaration(clang::DeclaratorContext, clang::SourceLocation&, clang::ParsedAttributes&, clang::ParsedAttributes&, clang::SourceLocation*) third_party/llvm/llvm-project/clang/lib/Parse/ParseDecl.cpp
#43 0x558ddf98e4bd in clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) third_party/llvm/llvm-project/clang/lib/Parse/Parser.cpp
#44 0x558ddfa63f04 in clang::Parser::ParseInnerNamespace(llvm::SmallVector<clang::Parser::InnerNamespaceInfo, 4u> const&, unsigned int, clang::SourceLocation&, clang::ParsedAttributes&, clang::BalancedDelimiterTracker&) third_party/llvm/llvm-project/clang/lib/Parse/ParseDeclCXX.cpp:240:7
#45 0x558ddfa614c7 in clang::Parser::ParseNamespace(clang::DeclaratorContext, clang::SourceLocation&, clang::SourceLocation) third_party/llvm/llvm-project/clang/lib/Parse/ParseDeclCXX.cpp:218:3
#46 0x558ddfad1334 in clang::Parser::ParseDeclaration(clang::DeclaratorContext, clang::SourceLocation&, clang::ParsedAttributes&, clang::ParsedAttributes&, clang::SourceLocation*) third_party/llvm/llvm-project/clang/lib/Parse/ParseDecl.cpp
#47 0x558ddf98e4bd in clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) third_party/llvm/llvm-project/clang/lib/Parse/Parser.cpp
#48 0x558ddf989c0d in clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) third_party/llvm/llvm-project/clang/lib/Parse/Parser.cpp:745:12
#49 0x558ddf96aeee in clang::ParseAST(clang::Sema&, bool, bool) third_party/llvm/llvm-project/clang/lib/Parse/ParseAST.cpp:170:20
#50 0x558ddf2278c9 in clang::ASTFrontendAction::ExecuteAction() third_party/llvm/llvm-project/clang/lib/Frontend/FrontendAction.cpp:1431:3
#51 0x558ddd1246be in clang::CodeGenAction::ExecuteAction() third_party/llvm/llvm-project/clang/lib/CodeGen/CodeGenAction.cpp:1109:30
#52 0x558ddf226532 in clang::FrontendAction::Execute() third_party/llvm/llvm-project/clang/lib/Frontend/FrontendAction.cpp:1311:3
#53 0x558ddf0acc76 in clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) third_party/llvm/llvm-project/clang/lib/Frontend/CompilerInstance.cpp:1008:33
#54 0x558ddd1108bc in clang::ExecuteCompilerInvocation(clang::CompilerInstance*) third_party/llvm/llvm-project/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:310:25
#55 0x558ddd0e9923 in cc1_main(llvm::ArrayRef<char const*>, char const*, void*) third_party/llvm/llvm-project/clang/tools/driver/cc1_main.cpp:300:15
#56 0x558ddd0dee70 in ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>) third_party/llvm/llvm-project/clang/tools/driver/driver.cpp:225:12
#57 0x558ddd0e60d3 in operator() third_party/llvm/llvm-project/clang/tools/driver/driver.cpp:369:12
#58 0x558ddd0e60d3 in int llvm::function_ref<int (llvm::SmallVectorImpl<char const*>&)>::callback_fn<clang_main(int, char**, llvm::ToolContext const&)::$_0>(long, llvm::SmallVectorImpl<char const*>&) third_party/llvm/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:12
#59 0x558ddf5749e1 in operator() third_party/llvm/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:12
#60 0x558ddf5749e1 in operator() third_party/llvm/llvm-project/clang/lib/Driver/Job.cpp:437:34
#61 0x558ddf5749e1 in void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::__msan::optional<llvm::StringRef>>, std::__msan::basic_string<char, std::__msan::char_traits<char>, std::__msan::allocator<char>>*, bool*) const::$_0>(long) third_party/llvm/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:12
#62 0x558deccf8397 in llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) () (
#63 0x558ddf570ff9 in clang::driver::CC1Command::Execute(llvm::ArrayRef<std::__msan::optional<llvm::StringRef>>, std::__msan::basic_string<char, std::__msan::char_traits<char>, std::__msan::allocator<char>>*, bool*) const third_party/llvm/llvm-project/clang/lib/Driver/Job.cpp:437:12
#64 0x558ddf4b9237 in clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const third_party/llvm/llvm-project/clang/lib/Driver/Compilation.cpp:196:15
#65 0x558ddf4b980e in clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::__msan::pair<int, clang::driver::Command const*>>&, bool) const third_party/llvm/llvm-project/clang/lib/Driver/Compilation.cpp:246:19
#66 0x558ddf503068 in clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::__msan::pair<int, clang::driver::Command const*>>&) third_party/llvm/llvm-project/clang/lib/Driver/Driver.cpp:2241:5
#67 0x558ddd0dd2fa in clang_main(int, char**, llvm::ToolContext const&) third_party/llvm/llvm-project/clang/tools/driver/driver.cpp:407:21
#68 0x558ddd0d8d6f in main llvm-project/clang/clang-driver.cpp:17:10
#69 0x7f1225bb1351 in __libc_start_main ()
#70 0x558ddd049fe9 in _start start.S:120
Uninitialized value was created by a heap deallocation
#0 0x558ddd0d8a89 in operator delete(void*, unsigned long, std::align_val_t) third_party/llvm/llvm-project/compiler-rt/lib/msan/msan_new_delete.cpp:108:3
#1 0x558decd6f8b8 in llvm::deallocate_buffer(void*, unsigned long, unsigned long) () (BuildId: 95156bac43bc56e46756d69535047519)
#2 0x558ddfeb30ac in deallocateBuckets third_party/llvm/llvm-project/llvm/include/llvm/ADT/DenseMap.h:834:5
#3 0x558ddfeb30ac in ~DenseMap third_party/llvm/llvm-project/llvm/include/llvm/ADT/DenseMap.h:744:5
#4 0x558ddfeb30ac in clang::ASTReader::ReadStmtFromStream(clang::serialization::ModuleFile&) third_party/llvm/llvm-project/clang/lib/Serialization/ASTReaderStmt.cpp:4548:1
#5 0x558ddfead686 in clang::ASTReader::ReadStmt(clang::serialization::ModuleFile&) third_party/llvm/llvm-project/clang/lib/Serialization/ASTReaderStmt.cpp:2987:12
#6 0x558ddfd8a838 in readStmt third_party/llvm/llvm-project/clang/include/clang/Serialization/ASTRecordReader.h:123:37
#7 0x558ddfd8a838 in readStmtRef third_party/llvm/llvm-project/clang/include/clang/Serialization/ASTRecordReader.h:124:32
#8 0x558ddfd8a838 in readExprRef llvm-project/clang/include/clang/AST/AbstractBasicReader.inc:933:40
#9 0x558ddfd8a838 in clang::serialization::AbstractTypeReader<clang::ASTRecordReader>::readDecltypeType() llvm-project/clang/include/clang/AST/AbstractTypeReader.inc:325:45
#10 0x558ddfcc9ce5 in clang::serialization::AbstractTypeReader<clang::ASTRecordReader>::read(clang::Type::TypeClass) llvm-project/clang/include/clang/AST/AbstractTypeReader.inc:50:14
#11 0x558ddfcc9535 in clang::ASTReader::readTypeRecord(unsigned long) third_party/llvm/llvm-project/clang/lib/Serialization/ASTReader.cpp:7197:21
#12 0x558ddfcb8184 in clang::ASTReader::GetType(unsigned long) third_party/llvm/llvm-project/clang/lib/Serialization/ASTReader.cpp:7931:26
#13 0x558ddfd46ed8 in getLocalType third_party/llvm/llvm-project/clang/lib/Serialization/ASTReader.cpp:7945:10
#14 0x558ddfd46ed8 in clang::ASTReader::readType(clang::serialization::ModuleFile&, llvm::SmallVector<unsigned long, 64u> const&, unsigned int&) third_party/llvm/llvm-project/clang/include/clang/Serialization/ASTReader.h:2119:12
#15 0x558ddfd8d76c in readType third_party/llvm/llvm-project/clang/include/clang/Serialization/ASTRecordReader.h:175:20
#16 0x558ddfd8d76c in readQualType third_party/llvm/llvm-project/clang/include/clang/Serialization/ASTRecordReader.h:178:12
#17 0x558ddfd8d76c in clang::serialization::AbstractTypeReader<clang::ASTRecordReader>::readFunctionProtoType() llvm-project/clang/include/clang/AST/AbstractTypeReader.inc:451:48
#18 0x558ddfcc9cb9 in clang::serialization::AbstractTypeReader<clang::ASTRecordReader>::read(clang::Type::TypeClass) llvm-project/clang/include/clang/AST/AbstractTypeReader.inc:68:14
#19 0x558ddfcc9535 in clang::ASTReader::readTypeRecord(unsigned long) third_party/llvm/llvm-project/clang/lib/Serialization/ASTReader.cpp:7197:21
#20 0x558ddfcb8184 in clang::ASTReader::GetType(unsigned long) third_party/llvm/llvm-project/clang/lib/Serialization/ASTReader.cpp:7931:26
#21 0x558ddfd46ed8 in getLocalType third_party/llvm/llvm-project/clang/lib/Serialization/ASTReader.cpp:7945:10
#22 0x558ddfd46ed8 in clang::ASTReader::readType(clang::serialization::ModuleFile&, llvm::SmallVector<unsigned long, 64u> const&, unsigned int&) third_party/llvm/llvm-project/clang/include/clang/Serialization/ASTReader.h:2119:12
#23 0x558ddfdd731c in readType third_party/llvm/llvm-project/clang/include/clang/Serialization/ASTRecordReader.h:175:20
#24 0x558ddfdd731c in clang::ASTDeclReader::VisitDeclaratorDecl(clang::DeclaratorDecl*) third_party/llvm/llvm-project/clang/lib/Serialization/ASTReaderDecl.cpp:911:29
#25 0x558ddfdd90cb in clang::ASTDeclReader::VisitFunctionDecl(clang::FunctionDecl*) third_party/llvm/llvm-project/clang/lib/Serialization/ASTReaderDecl.cpp:1026:3
#26 0x558ddfdcfdb7 in clang::declvisitor::Base<std::__msan::add_pointer, clang::ASTDeclReader, void>::Visit(clang::Decl*) llvm-project/clang/include/clang/AST/DeclNodes.inc:256:1
#27 0x558ddfdcf435 in clang::ASTDeclReader::Visit(clang::Decl*) third_party/llvm/llvm-project/clang/lib/Serialization/ASTReaderDecl.cpp:527:37
#28 0x558ddfe5e5ca in operator() third_party/llvm/llvm-project/clang/lib/Serialization/ASTReaderDecl.cpp:4249:53
#29 0x558ddfe5e5ca in void llvm::function_ref<void ()>::callback_fn<clang::ASTReader::ReadDeclRecord(clang::GlobalDeclID)::$_1>(long) third_party/llvm/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:12
#30 0x558de347d9cc in operator() third_party/llvm/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:12
#31 0x558de347d9cc in runWithSufficientStackSpace third_party/llvm/llvm-project/clang/include/clang/Basic/Stack.h:49:7
#32 0x558de347d9cc in clang::StackExhaustionHandler::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) third_party/llvm/llvm-project/clang/lib/Basic/StackExhaustionHandler.cpp:20:3
SUMMARY: MemorySanitizer: use-of-uninitialized-value third_party/llvm/llvm-project/clang/lib/Sema/SemaConcept.cpp:2413:1 in clang::Sema::getNormalizedAssociatedConstraints(llvm::PointerUnion<clang::NamedDecl const*, clang::concepts::NestedRequirement const*>, llvm::ArrayRef<clang::AssociatedConstraint>) (//third_party/llvm/llvm-project/clang:clang)
```
It looks like serialization or deserialization issue.
https://github.com/llvm/llvm-project/pull/161671
More information about the libcxx-commits
mailing list