================ @@ -12163,6 +12163,23 @@ bool Sema::CheckFunctionDeclaration(Scope *S, FunctionDecl *NewFD, } } + // C++11 [dcl.constexpr]p1: An explicit specialization of a constexpr + // function can differ from the template declaration with respect to + // the constexpr specifier. + if (IsMemberSpecialization) { + FunctionDecl *InstantiationFunction = + OldDecl ? OldDecl->getAsFunction() : nullptr; + if (InstantiationFunction && + InstantiationFunction->getTemplateSpecializationKind() == + TSK_ImplicitInstantiation && + (NewFD->getTemplateSpecializationKind() == TSK_ExplicitSpecialization || + NewFD->getTemplateSpecializationKind() == TSK_Undeclared)) { ---------------- vikramRH wrote:
I will update the tests with additional examples.. https://github.com/llvm/llvm-project/pull/145272 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits