Author: Saar Raz Date: 2020-01-16T13:39:30+02:00 New Revision: 8a3446746098ba29348bb8f85357dd0b466a6d6e
URL: https://github.com/llvm/llvm-project/commit/8a3446746098ba29348bb8f85357dd0b466a6d6e DIFF: https://github.com/llvm/llvm-project/commit/8a3446746098ba29348bb8f85357dd0b466a6d6e.diff LOG: [Concepts] Fix ConceptSpecializationExpr profiling crash ConceptSpecializationExprs (CSEs) were being created with nullptr TemplateArgsAsWritten during TemplateTemplateParmDecl canonicalization, and we were relying on them during profiling which caused sporadic crashes in test/CXX/.../temp.arg.template/p3-2a.cpp introduced in D44352. Change profiling of CSEs to instead rely on the actual converted template arguments and concept named. Added: Modified: clang/lib/AST/StmtProfile.cpp Removed: ################################################################################ diff --git a/clang/lib/AST/StmtProfile.cpp b/clang/lib/AST/StmtProfile.cpp index 2aa5106e90fa..c0b0f3b0b064 100644 --- a/clang/lib/AST/StmtProfile.cpp +++ b/clang/lib/AST/StmtProfile.cpp @@ -1335,9 +1335,9 @@ void StmtProfiler::VisitAtomicExpr(const AtomicExpr *S) { void StmtProfiler::VisitConceptSpecializationExpr( const ConceptSpecializationExpr *S) { VisitExpr(S); - VisitDecl(S->getFoundDecl()); - VisitTemplateArguments(S->getTemplateArgsAsWritten()->getTemplateArgs(), - S->getTemplateArgsAsWritten()->NumTemplateArgs); + VisitDecl(S->getNamedConcept()); + for (const TemplateArgument &Arg : S->getTemplateArguments()) + VisitTemplateArgument(Arg); } static Stmt::StmtClass DecodeOperatorCall(const CXXOperatorCallExpr *S, _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits