[clang] [Clang] Fix an assertion in the resolution of perfect matches (PR #140073)
Alexander Kornienko via cfe-commits
cfe-commits at lists.llvm.org
Fri May 16 08:00:27 PDT 2025
alexfh wrote:
@cor3ntin unfortunately, this fix causes assertion failures elsewhere:
```
assertion failed at clang/lib/AST/ASTContext.cpp:3913 in QualType clang::ASTContext::getDecayedType(QualType) const: (T->isArrayType() || T->isFunctionTy
pe()) && "T does not decay"
@ 0x55637f01d274 __assert_fail
@ 0x55637acbde6d clang::ASTContext::getDecayedType()
@ 0x55637a77c6e4 clang::StandardConversionSequence::isPerfect()
@ 0x55637a75a692 clang::OverloadCandidateSet::PerfectViableFunction()
@ 0x55637a7473bf clang::OverloadCandidateSet::BestViableFunction()
@ 0x55637a58b7d6 ResolveConstructorOverload()
@ 0x55637a5878c0 TryConstructorInitialization()
@ 0x55637a56b042 TryConstructorOrParenListInitialization()
@ 0x55637a5651dc clang::InitializationSequence::InitializeFrom()
@ 0x55637a4562e8 clang::Sema::BuildCXXTypeConstructExpr()
@ 0x55637aa0401c clang::TreeTransform<>::TransformCXXUnresolvedConstructExpr()
@ 0x55637aa27c6d clang::TreeTransform<>::TransformReturnStmt()
@ 0x55637aa0aa33 clang::TreeTransform<>::TransformCompoundStmt()
@ 0x55637a9ee50b clang::Sema::SubstStmt()
@ 0x55637aa6c377 clang::Sema::InstantiateFunctionDefinition()
@ 0x55637b59d77f clang::StackExhaustionHandler::runWithSufficientStackSpace()
@ 0x55637a928f4f clang::Sema::DeduceReturnType()
@ 0x55637a2ffe56 clang::Sema::DiagnoseUseOfDecl()
@ 0x55637a76c667 clang::Sema::BuildCallToMemberFunction()
@ 0x55637a307c71 clang::Sema::BuildCallExpr()
@ 0x55637a3227c7 clang::Sema::ActOnCallExpr()
@ 0x55637aa030f9 clang::TreeTransform<>::TransformCallExpr()
@ 0x55637aa18f38 clang::TreeTransform<>::TransformDecltypeType()
@ 0x55637a9e6179 clang::TreeTransform<>::TransformType()
@ 0x55637a9e5b2b clang::TreeTransform<>::TransformType()
@ 0x55637a9e567d clang::Sema::SubstType()
@ 0x55637aa54455 clang::TemplateDeclInstantiator::InstantiateTypedefNameDecl()
@ 0x55637aa56093 clang::TemplateDeclInstantiator::VisitTypeAliasDecl()
@ 0x55637a9eac80 clang::Sema::InstantiateClass()
@ 0x55637a9ed604 clang::Sema::InstantiateClassTemplateSpecialization()
@ 0x55637aaf357d llvm::function_ref<>::callback_fn<>()
@ 0x55637b59d77f clang::StackExhaustionHandler::runWithSufficientStackSpace()
@ 0x55637aad6405 clang::Sema::RequireCompleteTypeImpl()
@ 0x55637aad5a55 clang::Sema::RequireCompleteType()
@ 0x55637a45629c clang::Sema::BuildCXXTypeConstructExpr()
@ 0x55637aa0401c clang::TreeTransform<>::TransformCXXUnresolvedConstructExpr()
@ 0x55637aa27c6d clang::TreeTransform<>::TransformReturnStmt()
@ 0x55637aa0aa33 clang::TreeTransform<>::TransformCompoundStmt()
@ 0x55637a9ee50b clang::Sema::SubstStmt()
@ 0x55637aa6c377 clang::Sema::InstantiateFunctionDefinition()
@ 0x55637b59d77f clang::StackExhaustionHandler::runWithSufficientStackSpace()
@ 0x55637a928f4f clang::Sema::DeduceReturnType()
@ 0x55637a2ffe56 clang::Sema::DiagnoseUseOfDecl()
@ 0x55637a763c49 FinishOverloadedCallExpr()
@ 0x55637a763955 clang::Sema::BuildOverloadedCallExpr()
@ 0x55637a307a25 clang::Sema::BuildCallExpr()
@ 0x55637a3227c7 clang::Sema::ActOnCallExpr()
@ 0x556379d1766d clang::Parser::ParsePostfixExpressionSuffix()
@ 0x556379d198f8 clang::Parser::ParseCastExpression()
@ 0x556379d1b06f clang::Parser::ParseCastExpression()
@ 0x556379d14aed clang::Parser::ParseAssignmentExpression()
@ 0x556379d2346a clang::Parser::ParseExpressionList()
@ 0x556379d1741d clang::Parser::ParsePostfixExpressionSuffix()
@ 0x556379d198f8 clang::Parser::ParseCastExpression()
@ 0x556379d14aed clang::Parser::ParseAssignmentExpression()
@ 0x556379d1e191 clang::Parser::ParseParenExpression()
@ 0x556379d1bb17 clang::Parser::ParseCastExpression()
@ 0x556379d14aed clang::Parser::ParseAssignmentExpression()
@ 0x556379d2346a clang::Parser::ParseExpressionList()
@ 0x556379d1741d clang::Parser::ParsePostfixExpressionSuffix()
@ 0x556379d198f8 clang::Parser::ParseCastExpression()
@ 0x556379d163c8 clang::Parser::ParseCastExpression()
@ 0x556379d14aed clang::Parser::ParseAssignmentExpression()
@ 0x556379d2346a clang::Parser::ParseExpressionList()
@ 0x556379d1741d clang::Parser::ParsePostfixExpressionSuffix()
@ 0x556379d198f8 clang::Parser::ParseCastExpression()
@ 0x556379d163c8 clang::Parser::ParseCastExpression()
@ 0x556379d14aed clang::Parser::ParseAssignmentExpression()
@ 0x556379d35ef7 clang::Parser::ParseCXXCondition()
@ 0x556379dbd931 clang::Parser::ParseParenExprOrCondition()
@ 0x556379db711a clang::Parser::ParseWhileStatement()
@ 0x556379db27b3 clang::Parser::ParseStatementOrDeclarationAfterAttributes()
@ 0x556379db16b1 clang::Parser::ParseStatementOrDeclaration()
@ 0x556379dbd4f5 clang::Parser::ParseCompoundStatementBody()
@ 0x556379dbfd3d llvm::function_ref<>::callback_fn<>()
@ 0x55637b59d77f clang::StackExhaustionHandler::runWithSufficientStackSpace()
@ 0x556379db230c clang::Parser::ParseStatementOrDeclarationAfterAttributes()
@ 0x556379db16b1 clang::Parser::ParseStatementOrDeclaration()
@ 0x556379db6120 clang::Parser::ParseIfStatement()
@ 0x556379db2348 clang::Parser::ParseStatementOrDeclarationAfterAttributes()
@ 0x556379db16b1 clang::Parser::ParseStatementOrDeclaration()
@ 0x556379dbd4f5 clang::Parser::ParseCompoundStatementBody()
@ 0x556379dbe303 clang::Parser::ParseFunctionStatementBody()
@ 0x556379cf49c3 clang::Parser::ParseFunctionDefinition()
@ 0x556379d6be5e clang::Parser::ParseDeclGroup()
@ 0x556379cf3393 clang::Parser::ParseDeclOrFunctionDefInternal()
@ 0x556379cf28eb clang::Parser::ParseDeclarationOrFunctionDefinition()
@ 0x556379cf1676 clang::Parser::ParseExternalDeclaration()
@ 0x556379d3e877 clang::Parser::ParseInnerNamespace()
@ 0x556379d3d812 clang::Parser::ParseNamespace()
@ 0x556379d6934b clang::Parser::ParseDeclaration()
@ 0x556379cf117e clang::Parser::ParseExternalDeclaration()
@ 0x556379d3e877 clang::Parser::ParseInnerNamespace()
@ 0x556379d3d812 clang::Parser::ParseNamespace()
@ 0x556379d6934b clang::Parser::ParseDeclaration()
@ 0x556379cf117e clang::Parser::ParseExternalDeclaration()
@ 0x556379cef798 clang::Parser::ParseTopLevelDecl()
@ 0x556379cea9be clang::ParseAST()
@ 0x5563799cc6da clang::FrontendAction::Execute()
@ 0x55637993bf64 clang::CompilerInstance::ExecuteAction()
@ 0x556378c67c49 clang::ExecuteCompilerInvocation()
@ 0x556378c64715 cc1_main()
...
```
The test is being reduced.
https://github.com/llvm/llvm-project/pull/140073
More information about the cfe-commits
mailing list