[PATCH] D26702: [libc++] Introduce `_LIBCPP_OVERRIDABLE_FUNC_VIS`

Shoaib Meenai via cfe-commits cfe-commits at lists.llvm.org
Wed Nov 16 12:28:53 PST 2016


smeenai added a comment.

In https://reviews.llvm.org/D26702#597377, @EricWF wrote:

> What happens on windows when `operator new` isn't overridden and has to be imported from the DLL? Does that work?


Yup. If you have a function that isn't marked `dllimport` and it's not found locally, the linker will look for it in the libraries being linked to. `dllimport` just allows the function call to be more efficient (if a function is marked `dllimport`, the compiler can call the imported function directly, whereas if it isn't, the linker has to emit a fixup thunk and you end up with an extra function call for each call to the imported function). `dllimport` is necessary for data symbols though, but fortunately we're not dealing with any of those here.



================
Comment at: src/new.cpp:163
 
-_LIBCPP_WEAK _LIBCPP_NEW_DELETE_VIS
 void*
----------------
EricWF wrote:
> You should be able to remove the macro on the definitions since they're redundant. 
Good point. Will do that before committing.


https://reviews.llvm.org/D26702





More information about the cfe-commits mailing list