<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Fri, Jul 20, 2018 at 10:55 AM Zachary Turner via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: zturner<br>
Date: Fri Jul 20 10:50:53 2018<br>
New Revision: 337588<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=337588&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=337588&view=rev</a><br>
Log:<br>
Fix linker failure with Any.<br>
<br>
This is due to a difference in MS ABI which is why I didn't see<br>
it locally.  The included fix should work on all compilers.<br>
<br>
Modified:<br>
    llvm/trunk/include/llvm/ADT/Any.h<br>
<br>
Modified: llvm/trunk/include/llvm/ADT/Any.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/Any.h?rev=337588&r1=337587&r2=337588&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/Any.h?rev=337588&r1=337587&r2=337588&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/ADT/Any.h (original)<br>
+++ llvm/trunk/include/llvm/ADT/Any.h Fri Jul 20 10:50:53 2018<br>
@@ -25,7 +25,7 @@<br>
 namespace llvm {<br>
<br>
 class Any {<br>
-  template <typename T> struct TypeId { static const char Id = 0; };<br>
+  template <typename T> struct TypeId { static const char Id; };<br></blockquote><div><br></div><div>FWIW - you can leave the initializer here ^ even though there's an out of line definition, if you like.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
   struct StorageBase {<br>
     virtual ~StorageBase() = default;<br>
@@ -99,6 +99,9 @@ private:<br>
   std::unique_ptr<StorageBase> Storage;<br>
 };<br>
<br>
+template <typename T> const char Any::TypeId<T>::Id = 0;<br>
+<br>
+<br>
 template <typename T> bool any_isa(const Any &Value) {<br>
   if (!Value.Storage)<br>
     return false;<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote></div></div>