<div dir="ltr">I think this could have been fixed by making the LinkageTypes have an underlying type of `unsigned`.</div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Apr 24, 2016 at 2:10 PM, Mehdi Amini via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Thanks Duncan!<br>
I was puzzled by this failure...<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Mehdi<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
> On Apr 24, 2016, at 7:25 AM, Duncan P. N. Exon Smith via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<br>
><br>
> Author: dexonsmith<br>
> Date: Sun Apr 24 09:25:37 2016<br>
> New Revision: 267342<br>
><br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=267342&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=267342&view=rev</a><br>
> Log:<br>
> ModuleSummaryIndex: Avoid enum bitfields for MSVC portability<br>
><br>
> Enum bitfields have crazy portability issues with MSVC.  Use unsigned<br>
> instead of LinkageTypes here in the ModuleSummaryIndex to address<br>
> Takumi's concerns from r267335.<br>
><br>
> Modified:<br>
>    llvm/trunk/include/llvm/IR/ModuleSummaryIndex.h<br>
><br>
> Modified: llvm/trunk/include/llvm/IR/ModuleSummaryIndex.h<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/IR/ModuleSummaryIndex.h?rev=267342&r1=267341&r2=267342&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/IR/ModuleSummaryIndex.h?rev=267342&r1=267341&r2=267342&view=diff</a><br>
> ==============================================================================<br>
> --- llvm/trunk/include/llvm/IR/ModuleSummaryIndex.h (original)<br>
> +++ llvm/trunk/include/llvm/IR/ModuleSummaryIndex.h Sun Apr 24 09:25:37 2016<br>
> @@ -101,7 +101,7 @@ public:<br>
>     /// index, to disambiguate from other values with the same name.<br>
>     /// In the future this will be used to update and optimize linkage<br>
>     /// types based on global summary-based analysis.<br>
> -    GlobalValue::LinkageTypes Linkage : 4;<br>
> +    unsigned Linkage : 4;<br>
><br>
>     /// Indicate if the global value is located in a specific section.<br>
>     unsigned HasSection : 1;<br>
> @@ -167,7 +167,9 @@ public:<br>
>   GVFlags flags() { return Flags; }<br>
><br>
>   /// Return linkage type recorded for this global value.<br>
> -  GlobalValue::LinkageTypes linkage() const { return Flags.Linkage; }<br>
> +  GlobalValue::LinkageTypes linkage() const {<br>
> +    return static_cast<GlobalValue::LinkageTypes>(Flags.Linkage);<br>
> +  }<br>
><br>
>   /// Return true if this global value is located in a specific section.<br>
>   bool hasSection() const { return Flags.HasSection; }<br>
><br>
><br>
> _______________________________________________<br>
> llvm-commits mailing list<br>
> <a href="mailto:llvm-commits@lists.llvm.org">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>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org">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>
</div></div></blockquote></div><br></div>