Author: rsmith Date: Wed Jul 1 02:24:18 2015 New Revision: 241146 URL: http://llvm.org/viewvc/llvm-project?rev=241146&view=rev Log: [modules] Don't require the 'inline' specifier when merging an inline function; any source of the inline nature is sufficient.
Modified: cfe/trunk/lib/Sema/SemaDecl.cpp cfe/trunk/test/Modules/Inputs/submodules-merge-defs/defs.h Modified: cfe/trunk/lib/Sema/SemaDecl.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDecl.cpp?rev=241146&r1=241145&r2=241146&view=diff ============================================================================== --- cfe/trunk/lib/Sema/SemaDecl.cpp (original) +++ cfe/trunk/lib/Sema/SemaDecl.cpp Wed Jul 1 02:24:18 2015 @@ -10385,7 +10385,7 @@ Sema::CheckForFunctionRedefinition(Funct // through a deduced return type, or instantiate templates with local types. if (!hasVisibleDefinition(Definition) && (Definition->getFormalLinkage() == InternalLinkage || - Definition->isInlineSpecified() || + Definition->isInlined() || Definition->getDescribedFunctionTemplate() || Definition->getNumTemplateParameterLists())) return; Modified: cfe/trunk/test/Modules/Inputs/submodules-merge-defs/defs.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/Inputs/submodules-merge-defs/defs.h?rev=241146&r1=241145&r2=241146&view=diff ============================================================================== --- cfe/trunk/test/Modules/Inputs/submodules-merge-defs/defs.h (original) +++ cfe/trunk/test/Modules/Inputs/submodules-merge-defs/defs.h Wed Jul 1 02:24:18 2015 @@ -74,3 +74,9 @@ namespace FriendDefArg { template<typename, int, template<typename> class> friend struct D; }; } + +namespace SeparateInline { + inline void f(); + void f() {} + constexpr int g() { return 0; } +} _______________________________________________ cfe-commits mailing list cfe-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits