xref: /freebsd-src/contrib/llvm-project/libcxx/modules/std.compat.cppm.in (revision 0fca6ea1d4eea4c934cfff25ac9ee8ad6fe95583)
15f757f3fSDimitry Andric// -*- C++ -*-
25f757f3fSDimitry Andric//===----------------------------------------------------------------------===//
35f757f3fSDimitry Andric//
45f757f3fSDimitry Andric// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
55f757f3fSDimitry Andric// See https://llvm.org/LICENSE.txt for license information.
65f757f3fSDimitry Andric// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
75f757f3fSDimitry Andric//
85f757f3fSDimitry Andric//===----------------------------------------------------------------------===//
95f757f3fSDimitry Andric
105f757f3fSDimitry Andric// WARNING, this entire header is generated by
115f757f3fSDimitry Andric// utils/generate_libcxx_cppm_in.py
125f757f3fSDimitry Andric// DO NOT MODIFY!
135f757f3fSDimitry Andric
145f757f3fSDimitry Andricmodule;
155f757f3fSDimitry Andric
165f757f3fSDimitry Andric#include <__config>
175f757f3fSDimitry Andric
185f757f3fSDimitry Andric// The headers of Table 24: C++ library headers [tab:headers.cpp]
195f757f3fSDimitry Andric// and the headers of Table 25: C++ headers for C library facilities [tab:headers.cpp.c]
205f757f3fSDimitry Andric#include <cassert>
215f757f3fSDimitry Andric#include <cctype>
225f757f3fSDimitry Andric#include <cerrno>
235f757f3fSDimitry Andric#include <cfenv>
245f757f3fSDimitry Andric#include <cfloat>
255f757f3fSDimitry Andric#include <cinttypes>
265f757f3fSDimitry Andric#include <climits>
275f757f3fSDimitry Andric#if !defined(_LIBCPP_HAS_NO_LOCALIZATION)
285f757f3fSDimitry Andric#  include <clocale>
295f757f3fSDimitry Andric#endif
305f757f3fSDimitry Andric#include <cmath>
315f757f3fSDimitry Andric#include <csetjmp>
325f757f3fSDimitry Andric#include <csignal>
335f757f3fSDimitry Andric#include <cstdarg>
345f757f3fSDimitry Andric#include <cstddef>
355f757f3fSDimitry Andric#include <cstdint>
365f757f3fSDimitry Andric#include <cstdio>
375f757f3fSDimitry Andric#include <cstdlib>
385f757f3fSDimitry Andric#include <cstring>
395f757f3fSDimitry Andric#include <ctime>
405f757f3fSDimitry Andric#include <cuchar>
415f757f3fSDimitry Andric#if !defined(_LIBCPP_HAS_NO_WIDE_CHARACTERS)
425f757f3fSDimitry Andric#  include <cwchar>
435f757f3fSDimitry Andric#endif
445f757f3fSDimitry Andric#if !defined(_LIBCPP_HAS_NO_WIDE_CHARACTERS)
455f757f3fSDimitry Andric#  include <cwctype>
465f757f3fSDimitry Andric#endif
475f757f3fSDimitry Andric
485f757f3fSDimitry Andric// *** Headers not yet available ***
49*0fca6ea1SDimitry Andric//
50*0fca6ea1SDimitry Andric// This validation is mainly to catch when a new header is added but adding the
51*0fca6ea1SDimitry Andric// corresponding .inc file is forgotten. However, the check based on __has_include
52*0fca6ea1SDimitry Andric// alone doesn't work on Windows because the Windows SDK is on the include path,
53*0fca6ea1SDimitry Andric// and that means the MSVC STL headers can be found as well, tricking __has_include
54*0fca6ea1SDimitry Andric// into thinking that libc++ provides the header.
55*0fca6ea1SDimitry Andric//
56*0fca6ea1SDimitry Andric#ifndef _WIN32
575f757f3fSDimitry Andric#  if __has_include(<debugging>)
585f757f3fSDimitry Andric#    error "please update the header information for <debugging> in headers_not_available in utils/libcxx/header_information.py"
595f757f3fSDimitry Andric#  endif // __has_include(<debugging>)
605f757f3fSDimitry Andric#  if __has_include(<flat_map>)
615f757f3fSDimitry Andric#    error "please update the header information for <flat_map> in headers_not_available in utils/libcxx/header_information.py"
625f757f3fSDimitry Andric#  endif // __has_include(<flat_map>)
635f757f3fSDimitry Andric#  if __has_include(<flat_set>)
645f757f3fSDimitry Andric#    error "please update the header information for <flat_set> in headers_not_available in utils/libcxx/header_information.py"
655f757f3fSDimitry Andric#  endif // __has_include(<flat_set>)
665f757f3fSDimitry Andric#  if __has_include(<generator>)
675f757f3fSDimitry Andric#    error "please update the header information for <generator> in headers_not_available in utils/libcxx/header_information.py"
685f757f3fSDimitry Andric#  endif // __has_include(<generator>)
695f757f3fSDimitry Andric#  if __has_include(<hazard_pointer>)
705f757f3fSDimitry Andric#    error "please update the header information for <hazard_pointer> in headers_not_available in utils/libcxx/header_information.py"
715f757f3fSDimitry Andric#  endif // __has_include(<hazard_pointer>)
72*0fca6ea1SDimitry Andric#  if __has_include(<inplace_vector>)
73*0fca6ea1SDimitry Andric#    error "please update the header information for <inplace_vector> in headers_not_available in utils/libcxx/header_information.py"
74*0fca6ea1SDimitry Andric#  endif // __has_include(<inplace_vector>)
755f757f3fSDimitry Andric#  if __has_include(<linalg>)
765f757f3fSDimitry Andric#    error "please update the header information for <linalg> in headers_not_available in utils/libcxx/header_information.py"
775f757f3fSDimitry Andric#  endif // __has_include(<linalg>)
785f757f3fSDimitry Andric#  if __has_include(<rcu>)
795f757f3fSDimitry Andric#    error "please update the header information for <rcu> in headers_not_available in utils/libcxx/header_information.py"
805f757f3fSDimitry Andric#  endif // __has_include(<rcu>)
815f757f3fSDimitry Andric#  if __has_include(<spanstream>)
825f757f3fSDimitry Andric#    error "please update the header information for <spanstream> in headers_not_available in utils/libcxx/header_information.py"
835f757f3fSDimitry Andric#  endif // __has_include(<spanstream>)
845f757f3fSDimitry Andric#  if __has_include(<stacktrace>)
855f757f3fSDimitry Andric#    error "please update the header information for <stacktrace> in headers_not_available in utils/libcxx/header_information.py"
865f757f3fSDimitry Andric#  endif // __has_include(<stacktrace>)
875f757f3fSDimitry Andric#  if __has_include(<stdfloat>)
885f757f3fSDimitry Andric#    error "please update the header information for <stdfloat> in headers_not_available in utils/libcxx/header_information.py"
895f757f3fSDimitry Andric#  endif // __has_include(<stdfloat>)
905f757f3fSDimitry Andric#  if __has_include(<text_encoding>)
915f757f3fSDimitry Andric#    error "please update the header information for <text_encoding> in headers_not_available in utils/libcxx/header_information.py"
925f757f3fSDimitry Andric#  endif // __has_include(<text_encoding>)
93*0fca6ea1SDimitry Andric#endif // _WIN32
945f757f3fSDimitry Andric
955f757f3fSDimitry Andricexport module std.compat;
967a6dacacSDimitry Andricexport import std;
975f757f3fSDimitry Andric
987a6dacacSDimitry Andric
995f757f3fSDimitry Andric@LIBCXX_MODULE_STD_COMPAT_INCLUDE_SOURCES@