mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-25 13:51:41 +00:00
b47e23e17a
glibc marks various allocation functions as `throw()`. This addition hasn't been a problem until we tried to enable C++17, where clang started complaining that we were redeclaring functions with mismatched exception specifications. Peculiarly, glibc declares virtually everything we redeclare as `throw()`, but clang only complains about the mismatches for a particular subset of functions. The approach taken in this patch is to add another potentially defined macro to malloc_decls.h, `NOTHROW_MALLOC_DECL`. This macro works exactly like `MALLOC_DECL`, except that clients can define `NOTHROW_MALLOC_DECL` to add appropriate `throw()` specifiers when declaring functions at global scope, and thereby avoid mismatched exception specifications. Differential Revision: https://phabricator.services.mozilla.com/D44045 --HG-- extra : moz-landing-system : lando |
||
---|---|---|
.. | ||
cxxalloc.cpp | ||
cxxalloc.h | ||
moz.build | ||
mozalloc_abort.cpp | ||
mozalloc_abort.h | ||
mozalloc_oom.cpp | ||
mozalloc_oom.h | ||
mozalloc.cpp | ||
mozalloc.h | ||
msvc_raise_wrappers.cpp | ||
throw_gcc.h | ||
winheap.cpp |