smeenai added a comment.

I really like the cleanup, but I'm not the biggest fan of taking more Microsoft 
dependencies than necessary. I don't see any way around `operator 
new`/`operator delete` (since replacement in COFF can only work with a static 
library with one function per object file, the way `msvcrt.lib` does it, and it 
doesn't seem to be worth the trouble to provide our own corresponding static 
library), but I think the rest are avoidable (though it's entirely possible I'm 
missing something, of course).



================
Comment at: include/exception:85
 
+#if defined(_LIBCPP_ABI_MICROSOFT)
+#include <vcruntime_exception.h>
----------------
What's the rationale for relying on Microsoft's exception implementation rather 
than libc++'s?


================
Comment at: include/new:96
+#if defined(_LIBCPP_ABI_MICROSOFT)
+#include <new.h>
+#endif
----------------
`new.h` will pull in `new` unless you define certain macros. Is that desirable?


================
Comment at: include/new:138
 
+typedef void (*new_handler)();
+_LIBCPP_FUNC_VIS new_handler set_new_handler(new_handler) _NOEXCEPT;
----------------
Again, why defer these to Microsoft's STL? In particular, `set_new_handler` and 
`get_new_handler` seem to be part of `msvcprt`, which means we would take a 
runtime dependency on Microsoft's C++ library, which doesn't seem great.

These functions should map pretty well to `_query_new_handler` and 
`_set_new_handler` (apart from the different function pointer signature, which 
can be thunked around), right?


================
Comment at: include/new:177
 
+#if !defined(_LIBCPP_ABI_MICROSOFT)
+
----------------
Might be helpful to have a comment explaining why we wanna defer these to 
msvcrt on Windows?

Also, VS 2015 doesn't seem to have the sized and aligned allocation and 
deallocation functions. I haven't checked 2017.


https://reviews.llvm.org/D28785



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to