<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Aug 15, 2014 at 11:15 AM, Reid Kleckner <span dir="ltr"><<a href="mailto:rnk@google.com" target="_blank">rnk@google.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I fixed the MSVC 2013 build for this in r215744.  It gives this cool diagnostic:<div><br></div><div>..\lib\Target\X86\X86ISelLowering.cpp(7085) : error C2971: 'llvm::VariadicFunction1' : template parameter 'Func' : 'isShuffleEquivalentImpl' : a local variable cannot be used as a non-type argument<br>

</div><div><div>        ..\include\llvm/ADT/VariadicFunction.h(153) : see declaration of 'llvm::VariadicFunction1'</div><div>        ..\lib\Target\X86\X86ISelLowering.cpp(7061) : see declaration of 'isShuffleEquivalentImpl'</div>

</div><div><br></div><div>Obviously, isShuffleEquivalentImpl is not a local variable. Switching to an anonymous namespace over a static function makes the problem go away. Maybe what it's trying to say is that if you instantiate templates with static things you'll get template mangling collisions, because they don't internalize template instantiations that use internal decls.</div>
</div></blockquote></div><br>Wild. Thanks for fixing, I would never have figured that out.</div></div>