<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Fri, Jun 6, 2014 at 8:52 AM, Aaron Ballman <span dir="ltr"><<a href="mailto:aaron.ballman@gmail.com" target="_blank">aaron.ballman@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
> Index: include/llvm/Support/Mutex.h<br>
> ===================================================================<br>
> --- include/llvm/Support/Mutex.h<br>
> +++ include/llvm/Support/Mutex.h<br>
> @@ -17,138 +17,169 @@<br>
>  #include "llvm/Support/Compiler.h"<br>
>  #include "llvm/Support/Threading.h"<br>
>  #include <cassert><br>
> +#include <mutex><br>
> +#if defined(WIN32)<br>
> +#define NOMINMAX<br>
> +#include <Windows.h><br>
<br>
Please include "llvm/Support/Windows/WindowsSupport.h" instead (which<br>
I believe removes the need for NOMINMAX). Also, please guard with<br>
defined(LLVM_ON_WIN32).</blockquote><div><br></div><div><br></div><div>Ack, this breaks everything.  WindowsSupport.h is in src\llvm\lib\Support\Windows.  In other words, it's not in the include path.  It's usually only included from source files, in which case it's in the same tree, so it works.  It this kind of "don't put platform specific stuff in header files" a universal policy?  It seems to me like the WindowsSupport.h (and correspondingly, the Unix support headers), should be in the include directories so other headers can use them.  I'm guessing a lot of the reason that these void* impls are needed is precisely because of this restriction, and could be done away with in many cases if header files had access to platform specific types, even if only through other header files which typedefed platformed specific types to a set of common, platform-independent types.</div>
</div></div></div>