Author: epilk Date: Tue Dec 4 16:43:11 2018 New Revision: 348325 URL: http://llvm.org/viewvc/llvm-project?rev=348325&view=rev Log: [Sema] Remove some conditions of a failing assert
We should have been checking that this state is consistent, but its possible for it to be filled later, so it isn't really sound to check it here anyways. Fixes llvm.org/PR39742 Modified: cfe/trunk/lib/AST/DeclTemplate.cpp cfe/trunk/test/SemaCXX/friend-template-redecl.cpp Modified: cfe/trunk/lib/AST/DeclTemplate.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/DeclTemplate.cpp?rev=348325&r1=348324&r2=348325&view=diff ============================================================================== --- cfe/trunk/lib/AST/DeclTemplate.cpp (original) +++ cfe/trunk/lib/AST/DeclTemplate.cpp Tue Dec 4 16:43:11 2018 @@ -329,8 +329,6 @@ void FunctionTemplateDecl::mergePrevDecl // Ensure we don't leak any important state. assert(ThisCommon->Specializations.size() == 0 && - !ThisCommon->InstantiatedFromMember.getPointer() && - !ThisCommon->InstantiatedFromMember.getInt() && "Can't merge incompatible declarations!"); Base::Common = PrevCommon; Modified: cfe/trunk/test/SemaCXX/friend-template-redecl.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/friend-template-redecl.cpp?rev=348325&r1=348324&r2=348325&view=diff ============================================================================== --- cfe/trunk/test/SemaCXX/friend-template-redecl.cpp (original) +++ cfe/trunk/test/SemaCXX/friend-template-redecl.cpp Tue Dec 4 16:43:11 2018 @@ -18,3 +18,14 @@ void f() { foo(x); bar(x); } + +namespace PR39742 { +template<typename> +struct wrapper { + template<typename> + friend void friend_function_template() {} +}; + +wrapper<bool> x; +wrapper<int> y; +} _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits