Skip to content
Draft
Show file tree
Hide file tree
Changes from 89 commits
Commits
Show all changes
110 commits
Select commit Hold shift + click to select a range
f7afcf0
[libc++][debugging] P2546R5: Debugging Support
Zingam Jan 13, 2024
a515dfe
Cleanup
Zingam Jan 23, 2024
0b234ca
Implementation: Apple, FreeBSD, Linux, Windows
Zingam Jan 23, 2024
edb16ed
Implementation: Linux
Zingam Jan 23, 2024
4edac79
Implementation: Apple
Zingam Jan 23, 2024
e3d3961
Updated Feature Test Macro (FTM)
Zingam Jan 24, 2024
0b2f4d6
Simplified guards and fixed tests
Zingam Jan 24, 2024
3e26e97
WIP: LLDB python script
Zingam Jan 24, 2024
64a1388
WIP: GDB python script
Zingam Jan 26, 2024
5800288
WIP: GDB python script
H-G-Hristov Feb 5, 2024
1359120
GDB python script
H-G-Hristov Feb 5, 2024
0941ab6
Refactoring
H-G-Hristov Feb 6, 2024
18599db
WIP: LLDB `is_debugger_present` script
H-G-Hristov Feb 6, 2024
017f36d
Added test skelettons
H-G-Hristov Feb 6, 2024
b9b74f6
Tweaks
H-G-Hristov Feb 6, 2024
fc8dc5f
DONE: `is_debugger_present` test works for GDB and LLDB
H-G-Hristov Feb 7, 2024
c0b10dc
Tweaks and cleanups
H-G-Hristov Feb 7, 2024
d6ed5c8
Fixed Windows
H-G-Hristov Feb 8, 2024
509c777
Use `#error` instead of `static_assert`
H-G-Hristov Feb 8, 2024
7d9be28
WIP
H-G-Hristov Feb 12, 2024
c6e1684
Removed `breakpoint` test skelettons
H-G-Hristov Feb 12, 2024
1845333
Fix CI
H-G-Hristov Feb 12, 2024
8d0dc6f
Try to fix CI
H-G-Hristov Feb 12, 2024
3d5a02e
Try to fix CI
H-G-Hristov Feb 12, 2024
f9104b4
Try to fix CI
H-G-Hristov Feb 12, 2024
a090ef6
Try to fix CI
H-G-Hristov Feb 12, 2024
3e5a846
Try to fix CI
H-G-Hristov Feb 12, 2024
84bdcaf
Added ABIs
H-G-Hristov Feb 15, 2024
002e5a0
Various fixes: macOS, Android ABI
H-G-Hristov Feb 16, 2024
579557f
Try to fix BSD CI
H-G-Hristov Feb 16, 2024
60a35be
Try to fix Windows CI
H-G-Hristov Feb 17, 2024
fbda08b
Added `AVAILABIlITY` macro
H-G-Hristov Mar 19, 2024
44a3e47
Disabled build on FreeBSD
H-G-Hristov Mar 19, 2024
cadf300
Added tests
H-G-Hristov Mar 19, 2024
154b0d4
Minor tweak
H-G-Hristov Mar 19, 2024
70d6b51
Updated ABI
H-G-Hristov Mar 19, 2024
108ca69
Removed FreeBSD ABI
H-G-Hristov Mar 19, 2024
6807b1f
Updated ANDROID ABI
H-G-Hristov Mar 19, 2024
6d6d49b
Updated Apple ABI
H-G-Hristov Mar 19, 2024
8f1c1ce
Fixed double include
H-G-Hristov Mar 19, 2024
d6216c5
Updated Linux ABI
H-G-Hristov Mar 19, 2024
3516d18
Minor tweak
H-G-Hristov Mar 19, 2024
49f2cd4
Updated `__FreeBSD__` + restored ABI
H-G-Hristov Mar 20, 2024
729a608
Updated `FreeBSD` ABI
H-G-Hristov Mar 20, 2024
caa3f7b
Implemented P2810R4 `is_debugger_present` `is_replaceable``
H-G-Hristov Mar 29, 2024
0c75f9d
Updated release notes
H-G-Hristov Mar 29, 2024
8cc720d
Mark private functions as static.
H-G-Hristov Apr 28, 2024
c609239
[libc++][debugging][AIX] P2546R5: Debugging support & P2810R4: is_deb…
daltenty Apr 23, 2024
738062a
Merge branch 'main' into hgh/libcxx/P2546R5-Debugging-support
H-G-Hristov Apr 30, 2024
679a3e3
Merge branch 'main' into hgh/libcxx/P2546R5-Debugging-support
H-G-Hristov Apr 30, 2024
37fe2db
Fixed formatting
H-G-Hristov Apr 30, 2024
44a5913
Merge branch 'main' into hgh/libcxx/P2546R5-Debugging-support
H-G-Hristov Apr 30, 2024
2504803
Refactored `breakpoint()`
H-G-Hristov May 1, 2024
97a0d81
Merge branch 'main' into hgh/libcxx/P2546R5-Debugging-support
H-G-Hristov May 1, 2024
68bdcd6
Removed __builtin_trap
H-G-Hristov May 1, 2024
4ccec04
Merge branch 'main' into hgh/libcxx/P2546R5-Debugging-support
H-G-Hristov May 1, 2024
4ce6d08
Fixed build: Fixes + Updated ABI files
H-G-Hristov May 3, 2024
d2beb6d
Merge branch 'main' into hgh/libcxx/P2546R5-Debugging-support
H-G-Hristov May 3, 2024
00ccdc9
Use `__debugbreak` intrinsic
H-G-Hristov May 3, 2024
068ea09
Fixed Apple ABI
H-G-Hristov May 3, 2024
3f73a5f
Added `libcpp-has-no-incomplete-debugging`
H-G-Hristov May 3, 2024
6c20ab0
Merge branch 'main' into hgh/libcxx/P2546R5-Debugging-support
H-G-Hristov May 3, 2024
c052213
Merge branch 'main' into hgh/libcxx/P2546R5-Debugging-support
Zingam May 4, 2024
eefea95
linux with no-locale fix
H-G-Hristov May 4, 2024
9aba1d5
Merge branch 'main' into hgh/libcxx/P2546R5-Debugging-support
H-G-Hristov May 4, 2024
64d2ca4
fixed formatting
H-G-Hristov May 4, 2024
de52af4
Merge branch 'hgh/libcxx/P2546R5-Debugging-support' of https://github…
H-G-Hristov May 4, 2024
22d859c
Avoid using `std::string` on linux
H-G-Hristov May 4, 2024
ca3f0df
Fixed test + uglified local variables
H-G-Hristov May 4, 2024
e530005
Merge branch 'main' into hgh/libcxx/P2546R5-Debugging-support
H-G-Hristov May 4, 2024
60bb941
Fixed Apple and BSD builds
H-G-Hristov May 4, 2024
ac1a048
Try to fix FreeBSD
H-G-Hristov May 4, 2024
e0443bb
Fixed declration
H-G-Hristov May 4, 2024
67264be
Merge branch 'main' into hgh/libcxx/P2546R5-Debugging-support
H-G-Hristov May 9, 2024
b9d83ef
Added `breakpoint()` and `breakpoint_if_debugging()` tests
H-G-Hristov May 9, 2024
a3059ff
Merge branch 'main' into hgh/libcxx/P2546R5-Debugging-support
H-G-Hristov May 9, 2024
cbd0f8c
Fixed formatting
H-G-Hristov May 9, 2024
b65ca20
Fixed `breakpoint()` and `breakpoint_if_debugging()` tests
H-G-Hristov May 9, 2024
989cbfe
Try to fix tests
H-G-Hristov May 9, 2024
7975d7b
Merge branch 'main' into hgh/libcxx/P2546R5-Debugging-support
H-G-Hristov May 9, 2024
59f5746
Refactored tests
H-G-Hristov May 9, 2024
0ff4b5f
Merge branch 'main' into hgh/libcxx/P2546R5-Debugging-support
H-G-Hristov May 9, 2024
edd94d3
Merge branch 'main' into hgh/libcxx/P2546R5-Debugging-support
H-G-Hristov May 10, 2024
341640f
Fixed formatting
H-G-Hristov May 10, 2024
f065621
Removed: `_LIBCPP_HAS_NO_INCOMPLETE_DEBUGGING` macro
H-G-Hristov May 16, 2024
9495bb4
Merge branch 'main' into hgh/libcxx/P2546R5-Debugging-support
H-G-Hristov May 16, 2024
8d64955
Refactored includes
H-G-Hristov May 16, 2024
ad96846
Try to fix AIX `breakpoint()` test
H-G-Hristov May 16, 2024
e248654
Merge branch 'main' into hgh/libcxx/P2546R5-Debugging-support
H-G-Hristov May 16, 2024
9b7146d
Merge branch 'main' into hgh/libcxx/P2546R5-Debugging-support
H-G-Hristov Jun 9, 2024
bbd3339
Addressed some comments
H-G-Hristov Jun 9, 2024
5da1919
Removed `grep` based tests
H-G-Hristov Jun 9, 2024
cddde4a
Addressed some comments
H-G-Hristov Jun 9, 2024
3f1297c
Fixed a typo
H-G-Hristov Jun 9, 2024
6bcdb6e
Merge branch 'main' into hgh/libcxx/P2546R5-Debugging-support
H-G-Hristov Jun 9, 2024
c70e05c
Merge branch 'main' into hgh/libcxx/P2546R5-Debugging-support
H-G-Hristov Feb 17, 2025
514d934
Try to fix build after merge
H-G-Hristov Feb 17, 2025
d2783a1
Try to fix build after merge
H-G-Hristov Feb 17, 2025
fb147de
Try to fix build after merge
H-G-Hristov Feb 17, 2025
ebc626e
Try to fix CI
H-G-Hristov Feb 17, 2025
b8352d2
Merge branch 'main' into hgh/libcxx/P2546R5-Debugging-support
H-G-Hristov Feb 17, 2025
db11c96
Try to fix ABI files
H-G-Hristov Feb 17, 2025
bba40e3
Fix formatting
H-G-Hristov Feb 17, 2025
e1eef5a
Fixed module.modulemap
H-G-Hristov Feb 17, 2025
c85ee58
Merge branch 'main' into hgh/libcxx/P2546R5-Debugging-support
H-G-Hristov Feb 17, 2025
38a59b7
Try to fix macOS
H-G-Hristov Feb 17, 2025
413c867
Merge branch 'main' into hgh/libcxx/P2546R5-Debugging-support
H-G-Hristov Feb 17, 2025
625268c
Merge branch 'main' into hgh/libcxx/P2546R5-Debugging-support
H-G-Hristov Jul 22, 2025
7e72a48
LLVM22
H-G-Hristov Jul 22, 2025
42b0086
Merge branch 'main' into hgh/libcxx/P2546R5-Debugging-support
H-G-Hristov Sep 10, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion libcxx/docs/FeatureTestMacroTable.rst
Original file line number Diff line number Diff line change
Expand Up @@ -408,7 +408,7 @@ Status
---------------------------------------------------------- -----------------
``__cpp_lib_copyable_function`` *unimplemented*
---------------------------------------------------------- -----------------
``__cpp_lib_debugging`` *unimplemented*
``__cpp_lib_debugging`` ``202311L``
---------------------------------------------------------- -----------------
``__cpp_lib_default_template_type_for_algorithm_values`` *unimplemented*
---------------------------------------------------------- -----------------
Expand Down
2 changes: 2 additions & 0 deletions libcxx/docs/ReleaseNotes/19.rst
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@ Implemented Papers
- P2872R3 - Remove ``wstring_convert`` From C++26
- P3142R0 - Printing Blank Lines with ``println`` (as DR against C++23)
- P2944R3 - Comparisons for ``reference_wrapper`` (comparison operators for ``reference_wrapper`` only)
- P2546R5 - Debugging support (Picolib support is not implemented)
- P2810R4 - ``is_debuger_present`` is_replaceable
- P2302R4 - ``std::ranges::contains``
- P1659R3 - ``std::ranges::starts_with`` and ``std::ranges::ends_with``
- P3029R1 - Better ``mdspan``'s CTAD
Expand Down
1 change: 1 addition & 0 deletions libcxx/docs/Status/Cxx2c.rst
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ Paper Status
.. [#note-P2510R3] This paper is applied as DR against C++20. (MSVC STL and libstdc++ will do the same.)
.. [#note-P3142R0] This paper is applied as DR against C++23. (MSVC STL and libstdc++ will do the same.)
.. [#note-P2944R3] Implemented comparisons for ``reference_wrapper`` only.
.. [#note-P2546R5] Picolib support is not implemented.

.. _issues-status-cxx2c:

Expand Down
2 changes: 1 addition & 1 deletion libcxx/docs/Status/Cxx2cPapers.csv
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
"","","","","","",""
"`P0543R3 <https://wg21.link/P0543R3>`__","LWG","Saturation arithmetic","Kona November 2023","|Complete|","18.0",""
"`P2407R5 <https://wg21.link/P2407R5>`__","LWG","Freestanding Library: Partial Classes","Kona November 2023","","",""
"`P2546R5 <https://wg21.link/P2546R5>`__","LWG","Debugging Support","Kona November 2023","","",""
"`P2546R5 <https://wg21.link/P2546R5>`__","LWG","Debugging Support","Kona November 2023","|Partial| [#note-P2546R5]_","19.0",""
"`P2905R2 <https://wg21.link/P2905R2>`__","LWG","Runtime format strings","Kona November 2023","|Complete|","18.0","|format| |DR|"
"`P2918R2 <https://wg21.link/P2918R2>`__","LWG","Runtime format strings II","Kona November 2023","|Complete|","18.0","|format|"
"`P2909R4 <https://wg21.link/P2909R4>`__","LWG","Fix formatting of code units as integers (Dude, where’s my ``char``?)","Kona November 2023","|Complete|","18.0","|format| |DR|"
Expand Down
1 change: 1 addition & 0 deletions libcxx/include/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -918,6 +918,7 @@ set(files
cuchar
cwchar
cwctype
debugging
deque
errno.h
exception
Expand Down
5 changes: 5 additions & 0 deletions libcxx/include/__availability
Original file line number Diff line number Diff line change
Expand Up @@ -352,6 +352,11 @@
#define _LIBCPP_AVAILABILITY_HAS_BAD_EXPECTED_ACCESS_KEY_FUNCTION _LIBCPP_INTRODUCED_IN_LLVM_19
#define _LIBCPP_AVAILABILITY_BAD_EXPECTED_ACCESS_KEY_FUNCTION _LIBCPP_INTRODUCED_IN_LLVM_19_ATTRIBUTE

// This controls the availability of the C++26 debugging functions.
// The platform specific implementation is built in the library.
#define _LIBCPP_AVAILABILITY_HAS_DEBUGGING _LIBCPP_INTRODUCED_IN_LLVM_19
#define _LIBCPP_AVAILABILITY_DEBUGGING _LIBCPP_INTRODUCED_IN_LLVM_19_ATTRIBUTE

// Define availability attributes that depend on _LIBCPP_HAS_NO_EXCEPTIONS.
// Those are defined in terms of the availability attributes above, and
// should not be vendor-specific.
Expand Down
1 change: 1 addition & 0 deletions libcxx/include/__std_clang_module
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@
#if !defined(_LIBCPP_HAS_NO_WIDE_CHARACTERS)
# include <cwctype>
#endif
#include <debugging>
#include <deque>
#include <errno.h>
#include <exception>
Expand Down
58 changes: 58 additions & 0 deletions libcxx/include/debugging
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
// -*- C++ -*-
//===----------------------------------------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//

#ifndef _LIBCPP_DEBUGGING
#define _LIBCPP_DEBUGGING

/*
// all freestanding
namespace std {
// [debugging.utility], utility
void breakpoint() noexcept;
void breakpoint_if_debugging() noexcept;
bool is_debugger_present() noexcept;
}
*/

#include <__config>
#include <version>

#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
#endif

_LIBCPP_BEGIN_NAMESPACE_STD

#if _LIBCPP_STD_VER >= 26

_LIBCPP_AVAILABILITY_DEBUGGING _LIBCPP_EXPORTED_FROM_ABI void __breakpoint() noexcept;

_LIBCPP_AVAILABILITY_DEBUGGING _LIBCPP_HIDE_FROM_ABI inline void breakpoint() noexcept {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Based on

4.1. Unconditional Breakpoint

The goal of the std::breakpoint function is to "break" or pause the running program when called. Having an unconditional, i.e. attempts to break even if the debugger is or is not actually monitoring the program allows for use in conditions where it is not possible to detect if a debugger is present.

Implementations are expected to optimize the code generated to be as minimal as possible for the platform. For example, on X86 it’s expected that this produces a single INT3 instruction. The goal in this expectation is to place the debugger as close as possible in the caller of breakpoint() to improve the debugging experience for users.

I think it would be good to mark this function _LIBCPP_ALWAYS_INLINE with a short comment.

Did you verify the generated assembly? Also for -O0?

# if __has_builtin(__builtin_debugtrap)
__builtin_debugtrap();
# elif defined(_MSC_VER)
__debugbreak();
Copy link
Contributor Author

@H-G-Hristov H-G-Hristov May 5, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's probably not necessary? We support Windows but no MSVC, right?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We support clang-cl which should behave like MSVC. We also support MinGW.

# else
__breakpoint();
# endif
}

_LIBCPP_AVAILABILITY_DEBUGGING _LIBCPP_EXPORTED_FROM_ABI _LIBCPP_OVERRIDABLE_FUNC_VIS bool
is_debugger_present() noexcept;

_LIBCPP_AVAILABILITY_DEBUGGING _LIBCPP_HIDE_FROM_ABI inline void breakpoint_if_debugging() noexcept {
if (is_debugger_present())
breakpoint();
}

#endif

_LIBCPP_END_NAMESPACE_STD

#endif // _LIBCPP_DEBUGGING
4 changes: 4 additions & 0 deletions libcxx/include/module.modulemap
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,10 @@ module std_coroutine [system] {
header "coroutine"
export *
}
module std_debugging [system] {
header "debugging"
export *
}
module std_deque [system] {
header "deque"
export *
Expand Down
4 changes: 3 additions & 1 deletion libcxx/include/version
Original file line number Diff line number Diff line change
Expand Up @@ -504,7 +504,9 @@ __cpp_lib_void_t 201411L <type_traits>
# define __cpp_lib_bitset 202306L
// # define __cpp_lib_constrained_equality 202403L
// # define __cpp_lib_copyable_function 202306L
// # define __cpp_lib_debugging 202311L
# if _LIBCPP_STD_VER >= 26 && defined(_LIBCPP_AVAILABILITY_HAS_DEBUGGING)
# define __cpp_lib_debugging 202311L
# endif
// # define __cpp_lib_default_template_type_for_algorithm_values 202403L
// # define __cpp_lib_freestanding_algorithm 202311L
// # define __cpp_lib_freestanding_array 202311L
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -965,6 +965,7 @@
{'is_defined': True, 'name': '__ZNSt3__111timed_mutexC2Ev', 'type': 'FUNC'}
{'is_defined': True, 'name': '__ZNSt3__111timed_mutexD1Ev', 'type': 'FUNC'}
{'is_defined': True, 'name': '__ZNSt3__111timed_mutexD2Ev', 'type': 'FUNC'}
{'is_defined': True, 'name': '__ZNSt3__112__breakpointEv', 'type': 'FUNC'}
{'is_defined': True, 'name': '__ZNSt3__112__do_nothingEPv', 'type': 'FUNC'}
{'is_defined': True, 'name': '__ZNSt3__112__get_sp_mutEPKv', 'type': 'FUNC'}
{'is_defined': True, 'name': '__ZNSt3__112__next_primeEm', 'type': 'FUNC'}
Expand Down Expand Up @@ -1564,6 +1565,7 @@
{'is_defined': True, 'name': '__ZNSt3__119basic_istringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEaSEOS5_', 'type': 'FUNC'}
{'is_defined': True, 'name': '__ZNSt3__119basic_ostringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEaSEOS5_', 'type': 'FUNC'}
{'is_defined': True, 'name': '__ZNSt3__119declare_no_pointersEPcm', 'type': 'FUNC'}
{'is_defined': True, 'name': '__ZNSt3__119is_debugger_presentEv', 'type': 'FUNC'}
{'is_defined': True, 'name': '__ZNSt3__120__get_collation_nameEPKc', 'type': 'FUNC'}
{'is_defined': True, 'name': '__ZNSt3__120__libcpp_atomic_waitEPVKNS_17__cxx_atomic_implIxNS_22__cxx_atomic_base_implIxEEEEx', 'type': 'FUNC'}
{'is_defined': True, 'name': '__ZNSt3__120__libcpp_atomic_waitEPVKvx', 'type': 'FUNC'}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -599,6 +599,7 @@
{'is_defined': True, 'name': '_ZNSt6__ndk111timed_mutexC2Ev', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt6__ndk111timed_mutexD1Ev', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt6__ndk111timed_mutexD2Ev', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt6__ndk112__breakpointEv', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt6__ndk112__do_nothingEPv', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt6__ndk112__get_sp_mutEPKv', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt6__ndk112__next_primeEj', 'type': 'FUNC'}
Expand Down Expand Up @@ -1198,6 +1199,7 @@
{'is_defined': True, 'name': '_ZNSt6__ndk119basic_istringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEaSEOS5_', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt6__ndk119basic_ostringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEaSEOS5_', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt6__ndk119declare_no_pointersEPcj', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt6__ndk119is_debugger_presentEv', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt6__ndk120__get_collation_nameEPKc', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt6__ndk120__libcpp_atomic_waitEPVKNS_17__cxx_atomic_implIiNS_22__cxx_atomic_base_implIiEEEEi', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt6__ndk120__libcpp_atomic_waitEPVKvi', 'type': 'FUNC'}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -324,6 +324,7 @@
{'import_export': 'EXP', 'is_defined': True, 'name': '_ZNSt3__111timed_mutexC2Ev', 'storage_mapping_class': 'DS', 'type': 'FUNC'}
{'import_export': 'EXP', 'is_defined': True, 'name': '_ZNSt3__111timed_mutexD1Ev', 'storage_mapping_class': 'DS', 'type': 'FUNC'}
{'import_export': 'EXP', 'is_defined': True, 'name': '_ZNSt3__111timed_mutexD2Ev', 'storage_mapping_class': 'DS', 'type': 'FUNC'}
{'import_export': 'EXP', 'is_defined': True, 'name': '_ZNSt3__112__breakpointEv', 'storage_mapping_class': 'DS', 'type': 'FUNC'}
{'import_export': 'EXP', 'is_defined': True, 'name': '_ZNSt3__112__do_nothingEPv', 'storage_mapping_class': 'DS', 'type': 'FUNC'}
{'import_export': 'EXP', 'is_defined': True, 'name': '_ZNSt3__112__get_sp_mutEPKv', 'storage_mapping_class': 'DS', 'type': 'FUNC'}
{'import_export': 'EXP', 'is_defined': True, 'name': '_ZNSt3__112__next_primeEm', 'storage_mapping_class': 'DS', 'type': 'FUNC'}
Expand Down Expand Up @@ -1714,6 +1715,7 @@
{'import_export': 'wEXP', 'is_defined': True, 'name': '_ZNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEaSEOS5_', 'storage_mapping_class': 'DS', 'type': 'FUNC'}
{'import_export': 'wEXP', 'is_defined': True, 'name': '_ZNSt3__119basic_istringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEaSEOS5_', 'storage_mapping_class': 'DS', 'type': 'FUNC'}
{'import_export': 'wEXP', 'is_defined': True, 'name': '_ZNSt3__119basic_ostringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEaSEOS5_', 'storage_mapping_class': 'DS', 'type': 'FUNC'}
{'import_export': 'wEXP', 'is_defined': True, 'name': '_ZNSt3__119is_debugger_presentEv', 'storage_mapping_class': 'DS', 'type': 'FUNC'}
{'import_export': 'wEXP', 'is_defined': True, 'name': '_ZNSt3__122__libcpp_verbose_abortEPKcz', 'storage_mapping_class': 'DS', 'type': 'FUNC'}
{'import_export': 'wEXP', 'is_defined': True, 'name': '_ZNSt3__14__fs10filesystem16_FilesystemClock9is_steadyE', 'storage_mapping_class': 'RO', 'type': 'OBJECT'}
{'import_export': 'wEXP', 'is_defined': True, 'name': '_ZNSt3__14__fs10filesystem4path19preferred_separatorE', 'storage_mapping_class': 'RO', 'type': 'OBJECT'}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -324,6 +324,7 @@
{'import_export': 'EXP', 'is_defined': True, 'name': '_ZNSt3__111timed_mutexC2Ev', 'storage_mapping_class': 'DS', 'type': 'FUNC'}
{'import_export': 'EXP', 'is_defined': True, 'name': '_ZNSt3__111timed_mutexD1Ev', 'storage_mapping_class': 'DS', 'type': 'FUNC'}
{'import_export': 'EXP', 'is_defined': True, 'name': '_ZNSt3__111timed_mutexD2Ev', 'storage_mapping_class': 'DS', 'type': 'FUNC'}
{'import_export': 'EXP', 'is_defined': True, 'name': '_ZNSt3__112__breakpointEv', 'storage_mapping_class': 'DS', 'type': 'FUNC'}
{'import_export': 'EXP', 'is_defined': True, 'name': '_ZNSt3__112__do_nothingEPv', 'storage_mapping_class': 'DS', 'type': 'FUNC'}
{'import_export': 'EXP', 'is_defined': True, 'name': '_ZNSt3__112__get_sp_mutEPKv', 'storage_mapping_class': 'DS', 'type': 'FUNC'}
{'import_export': 'EXP', 'is_defined': True, 'name': '_ZNSt3__112__next_primeEm', 'storage_mapping_class': 'DS', 'type': 'FUNC'}
Expand Down Expand Up @@ -1714,6 +1715,7 @@
{'import_export': 'wEXP', 'is_defined': True, 'name': '_ZNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEaSEOS5_', 'storage_mapping_class': 'DS', 'type': 'FUNC'}
{'import_export': 'wEXP', 'is_defined': True, 'name': '_ZNSt3__119basic_istringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEaSEOS5_', 'storage_mapping_class': 'DS', 'type': 'FUNC'}
{'import_export': 'wEXP', 'is_defined': True, 'name': '_ZNSt3__119basic_ostringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEaSEOS5_', 'storage_mapping_class': 'DS', 'type': 'FUNC'}
{'import_export': 'wEXP', 'is_defined': True, 'name': '_ZNSt3__119is_debugger_presentEv', 'storage_mapping_class': 'DS', 'type': 'FUNC'}
{'import_export': 'wEXP', 'is_defined': True, 'name': '_ZNSt3__122__libcpp_verbose_abortEPKcz', 'storage_mapping_class': 'DS', 'type': 'FUNC'}
{'import_export': 'wEXP', 'is_defined': True, 'name': '_ZNSt3__14__fs10filesystem16_FilesystemClock9is_steadyE', 'storage_mapping_class': 'RO', 'type': 'OBJECT'}
{'import_export': 'wEXP', 'is_defined': True, 'name': '_ZNSt3__14__fs10filesystem4path19preferred_separatorE', 'storage_mapping_class': 'RO', 'type': 'OBJECT'}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -976,6 +976,7 @@
{'is_defined': True, 'name': '__ZNSt3__112__rs_defaultD1Ev', 'type': 'FUNC'}
{'is_defined': True, 'name': '__ZNSt3__112__rs_defaultD2Ev', 'type': 'FUNC'}
{'is_defined': True, 'name': '__ZNSt3__112__rs_defaultclEv', 'type': 'FUNC'}
{'is_defined': True, 'name': '__ZNSt3__112__breakpointEv', 'type': 'FUNC'}
{'is_defined': True, 'name': '__ZNSt3__112bad_weak_ptrD0Ev', 'type': 'FUNC'}
{'is_defined': True, 'name': '__ZNSt3__112bad_weak_ptrD1Ev', 'type': 'FUNC'}
{'is_defined': True, 'name': '__ZNSt3__112bad_weak_ptrD2Ev', 'type': 'FUNC'}
Expand Down Expand Up @@ -1564,6 +1565,7 @@
{'is_defined': True, 'name': '__ZNSt3__119basic_istringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEaSEOS5_', 'type': 'FUNC'}
{'is_defined': True, 'name': '__ZNSt3__119basic_ostringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEaSEOS5_', 'type': 'FUNC'}
{'is_defined': True, 'name': '__ZNSt3__119declare_no_pointersEPcm', 'type': 'FUNC'}
{'is_defined': True, 'name': '__ZNSt3__119is_debugger_presentEv', 'type': 'FUNC'}
{'is_defined': True, 'name': '__ZNSt3__120__get_collation_nameEPKc', 'type': 'FUNC'}
{'is_defined': True, 'name': '__ZNSt3__120__libcpp_atomic_waitEPVKNS_17__cxx_atomic_implIxNS_22__cxx_atomic_base_implIxEEEEx', 'type': 'FUNC'}
{'is_defined': True, 'name': '__ZNSt3__120__libcpp_atomic_waitEPVKvx', 'type': 'FUNC'}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -599,6 +599,7 @@
{'is_defined': True, 'name': '_ZNSt6__ndk111timed_mutexC2Ev', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt6__ndk111timed_mutexD1Ev', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt6__ndk111timed_mutexD2Ev', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt6__ndk112__breakpointEv', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt6__ndk112__do_nothingEPv', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt6__ndk112__get_sp_mutEPKv', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt6__ndk112__next_primeEm', 'type': 'FUNC'}
Expand Down Expand Up @@ -1198,6 +1199,7 @@
{'is_defined': True, 'name': '_ZNSt6__ndk119basic_istringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEaSEOS5_', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt6__ndk119basic_ostringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEaSEOS5_', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt6__ndk119declare_no_pointersEPcm', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt6__ndk119is_debugger_presentEv', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt6__ndk120__get_collation_nameEPKc', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt6__ndk120__libcpp_atomic_waitEPVKNS_17__cxx_atomic_implIiNS_22__cxx_atomic_base_implIiEEEEi', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt6__ndk120__libcpp_atomic_waitEPVKvi', 'type': 'FUNC'}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -613,6 +613,7 @@
{'is_defined': True, 'name': '_ZNSt3__111timed_mutexC2Ev', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt3__111timed_mutexD1Ev', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt3__111timed_mutexD2Ev', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt3__112__breakpointEv', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt3__112__do_nothingEPv', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt3__112__get_sp_mutEPKv', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt3__112__next_primeEm', 'type': 'FUNC'}
Expand Down Expand Up @@ -1212,6 +1213,7 @@
{'is_defined': True, 'name': '_ZNSt3__119basic_istringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEaSEOS5_', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt3__119basic_ostringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEaSEOS5_', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt3__119declare_no_pointersEPcm', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt3__119is_debugger_presentEv', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt3__120__get_collation_nameEPKc', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt3__120__libcpp_atomic_waitEPVKNS_17__cxx_atomic_implIlNS_22__cxx_atomic_base_implIlEEEEl', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt3__120__libcpp_atomic_waitEPVKvl', 'type': 'FUNC'}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -611,6 +611,7 @@
{'is_defined': True, 'name': '_ZNSt3__111timed_mutexC2Ev', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt3__111timed_mutexD1Ev', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt3__111timed_mutexD2Ev', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt3__112__breakpointEv', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt3__112__do_nothingEPv', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt3__112__get_sp_mutEPKv', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt3__112__next_primeEm', 'type': 'FUNC'}
Expand Down Expand Up @@ -1210,6 +1211,7 @@
{'is_defined': True, 'name': '_ZNSt3__119basic_istringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEaSEOS5_', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt3__119basic_ostringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEaSEOS5_', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt3__119declare_no_pointersEPcm', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt3__119is_debugger_presentEv', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt3__120__get_collation_nameEPKc', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt3__120__libcpp_atomic_waitEPVKNS_17__cxx_atomic_implIiNS_22__cxx_atomic_base_implIiEEEEi', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt3__120__libcpp_atomic_waitEPVKvi', 'type': 'FUNC'}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -582,6 +582,7 @@
{'is_defined': True, 'name': '_ZNSt3__111timed_mutexC2Ev', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt3__111timed_mutexD1Ev', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt3__111timed_mutexD2Ev', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt3__112__breakpointEv', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt3__112__do_nothingEPv', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt3__112__get_sp_mutEPKv', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt3__112__next_primeEm', 'type': 'FUNC'}
Expand Down Expand Up @@ -1181,6 +1182,7 @@
{'is_defined': True, 'name': '_ZNSt3__119basic_istringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEaSEOS5_', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt3__119basic_ostringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEaSEOS5_', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt3__119declare_no_pointersEPcm', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt3__119is_debugger_presentEv', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt3__120__get_collation_nameEPKc', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt3__120__libcpp_atomic_waitEPVKNS_17__cxx_atomic_implIiNS_22__cxx_atomic_base_implIiEEEEi', 'type': 'FUNC'}
{'is_defined': True, 'name': '_ZNSt3__120__libcpp_atomic_waitEPVKvi', 'type': 'FUNC'}
Expand Down
1 change: 1 addition & 0 deletions libcxx/modules/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ set(LIBCXX_MODULE_STD_SOURCES
std/cuchar.inc
std/cwchar.inc
std/cwctype.inc
std/debugging.inc
std/deque.inc
std/exception.inc
std/execution.inc
Expand Down
3 changes: 0 additions & 3 deletions libcxx/modules/std.compat.cppm.in
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,6 @@ module;
// into thinking that libc++ provides the header.
//
#ifndef _WIN32
# if __has_include(<debugging>)
# error "please update the header information for <debugging> in headers_not_available in utils/libcxx/header_information.py"
# endif // __has_include(<debugging>)
# if __has_include(<flat_map>)
# error "please update the header information for <flat_map> in headers_not_available in utils/libcxx/header_information.py"
# endif // __has_include(<flat_map>)
Expand Down
Loading