rsmith added inline comments. ================ Comment at: lib/Sema/SemaLookup.cpp:1546-1548 @@ -1545,5 +1549,5 @@ // definition of it, because parameters aren't "within" the definition. if ((D->isTemplateParameter() || isa<ParmVarDecl>(D)) ? isVisible(SemaRef, cast<NamedDecl>(DC)) : SemaRef.hasVisibleDefinition(cast<NamedDecl>(DC))) { if (SemaRef.ActiveTemplateInstantiations.empty() && ---------------- This check should already do the right thing for the case of a function-scope declaration.
================ Comment at: test/Modules/Inputs/PR28794/Subdir/LibBHeader.h:6-10 @@ +5,7 @@ + +template <typename T, size_t SlabSize, size_t SizeThreshold> +void *operator new(size_t, BumpPtrAllocatorImpl<T, SlabSize, SizeThreshold> &) { + struct S {}; + return (void*)0xdead; +} + ---------------- We should not be instantiating this template in the first place: the template definition should not be visible within pr28794.cpp because the LibBHeader.h submodule is never imported. I would guess the bug is that we're missing a visibility check for the template definition when we trigger the instantiation here. Repository: rL LLVM https://reviews.llvm.org/D23492 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits