<br><br><div class="gmail_quote">On Tue, Jan 24, 2012 at 11:47 PM, Chandler Carruth <span dir="ltr"><<a href="mailto:chandlerc@google.com">chandlerc@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 class="gmail_quote">FYI, I think Nick wanted to chime in on this, but he's kinda busy, so I just wanted to update thread and put it on his radar.</div><div class="gmail_quote"><br></div><div class="gmail_quote">Kostya, as a temporary measure, and until we figure out the right long-term solution, in r148937 I've removed this attribute from the C API's enum, but only that enum. AFAICT, this should have no impact on your usage, and just cause trouble for folks mixing ASan and the C API, which seems very unlikely.</div>
</blockquote><div><br></div><div>Thanks, Chandler!</div><div><br></div><div>--kcc </div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="gmail_quote"><br></div><div class="gmail_quote"><div class="im">On Mon, Jan 23, 2012 at 12:01 PM, Eli Friedman <span dir="ltr"><<a href="mailto:eli.friedman@gmail.com" target="_blank">eli.friedman@gmail.com</a>></span> wrote:<br>
</div><div><div class="h5"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div>On Mon, Jan 23, 2012 at 11:02 AM, Kostya Serebryany <<a href="mailto:kcc@google.com" target="_blank">kcc@google.com</a>> wrote:<br>
> My previous change in include/llvm-c/Core.h that introduced 64-bit<br>
> Attributes (r148553) caused a warning<br>
> while building with MSVC. <a href="http://llvm.org/bugs/show_bug.cgi?id=11828" target="_blank">http://llvm.org/bugs/show_bug.cgi?id=11828</a><br>
> The following patch fixes the problem (use "static const uint64_t" instead<br>
> of enum).<br>
> Ok to commit?<br>
><br>
> --kcc<br>
><br>
> Index: include/llvm-c/Core.h<br>
> ===================================================================<br>
> --- include/llvm-c/Core.h  (revision 148708)<br>
> +++ include/llvm-c/Core.h  (working copy)<br>
> @@ -92,7 +92,7 @@<br>
>  /** Used to get the users and usees of a Value. See the llvm::Use class. */<br>
>  typedef struct LLVMOpaqueUse *LLVMUseRef;<br>
><br>
> -typedef enum {<br>
> +static const uint64_t<br>
>      LLVMZExtAttribute       = 1<<0,<br>
>      LLVMSExtAttribute       = 1<<1,<br>
>      LLVMNoReturnAttribute   = 1<<2,<br>
> @@ -119,8 +119,8 @@<br>
>      LLVMReturnsTwice = 1 << 29,<br>
>      LLVMUWTable = 1 << 30,<br>
>      LLVMNonLazyBind = 1U << 31,<br>
> -    LLVMAddressSafety = 1ULL << 32<br>
> -} LLVMAttribute;<br>
> +    LLVMAddressSafety = 1ULL << 32;<br>
> +typedef uint64_t LLVMAttribute;<br>
><br>
>  typedef enum {<br>
>    /* Terminator Instructions */<br>
<br>
</div></div>Hmm... actually, I'm not sure this is okay; it's a<br>
non-binary-compatible change to the C API.</blockquote><div><br></div></div></div><div>Nick seemed to think that such changes were inevitable and not a big deal. I'm not at all sure. I took the conservative move as I mentioned above and restored the C interface to its previous state as we don't need the functionality there anyways. We can figure out the right way to introduce it now w/o warnings or other noise. </div>

</div>
</blockquote></div><br>