4 Commits

Author SHA1 Message Date
Mark de Wever
6c4dedde08
[libc++][modules] Uses _LIBCPP_USING_IF_EXISTS. (#90409)
This attribute is used in the headers. Not using this in the modules has
led to several issues. Add them to the modules to avoid these errors in
other placed.
2024-05-03 17:29:27 +02:00
Martin Storsjö
91526d64a8
[libcxx] [modules] Add _LIBCPP_USING_IF_EXISTS on aligned_alloc (#89827)
This is missing e.g. on Windows. With this change, it's possible to make
the libcxx std module work on mingw-w64 (although that requires a few
fixes to those headers).

In the regular cstdlib header, we have _LIBCPP_USING_IF_EXISTS flagged
on every single reexported function (since
a9c9183ca42629fa83cdda297d1d30c7bc1d7c91), but the modules seem to only
have _LIBCPP_USING_IF_EXISTS set on a few individual functions, so far.
2024-04-24 11:45:27 +03:00
Gareth Williamson
9a90aa01ed
[libc++][modules] Add using_if_exists attribute (#77559) (#78909)
libc on macOS does not provide at_quick_exit or quick_exit. This allows
modules to build on macOS and defer any errors to usage site of these
symbols.

Fixes: https://github.com/llvm/llvm-project/issues/77559
2024-01-22 18:11:45 +01:00
Mark de Wever
600462a2db
[libc++][modules] Adds std.compat module. (#71438)
This adds the std.compat module. The patch contains a bit of refactoring
to avoid code duplication between the std and std.compat module.

Implements parts of
- P2465R3 Standard Library Modules std and std.compat
2023-12-09 13:51:50 +01:00