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

Reply via email to