aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Headers/module.modulemap
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2023-12-09 13:28:42 +0000
committerDimitry Andric <dim@FreeBSD.org>2023-12-09 13:28:42 +0000
commitb1c73532ee8997fe5dfbeb7d223027bdf99758a0 (patch)
tree7d6e51c294ab6719475d660217aa0c0ad0526292 /clang/lib/Headers/module.modulemap
parent7fa27ce4a07f19b07799a767fc29416f3b625afb (diff)
downloadsrc-b1c73532ee8997fe5dfbeb7d223027bdf99758a0.tar.gz
src-b1c73532ee8997fe5dfbeb7d223027bdf99758a0.zip
Diffstat (limited to 'clang/lib/Headers/module.modulemap')
-rw-r--r--clang/lib/Headers/module.modulemap159
1 files changed, 157 insertions, 2 deletions
diff --git a/clang/lib/Headers/module.modulemap b/clang/lib/Headers/module.modulemap
index 6894672ef052..a786689d3917 100644
--- a/clang/lib/Headers/module.modulemap
+++ b/clang/lib/Headers/module.modulemap
@@ -153,9 +153,164 @@ module _Builtin_intrinsics [system] [extern_c] {
}
}
-module _Builtin_stddef_max_align_t [system] [extern_c] {
- header "__stddef_max_align_t.h"
+// Start -fbuiltin-headers-in-system-modules affected modules
+
+// The following modules all ignore their top level headers
+// when -fbuiltin-headers-in-system-modules is passed, and
+// most of those headers join system modules when present.
+
+// e.g. if -fbuiltin-headers-in-system-modules is passed, then
+// float.h will not be in the _Builtin_float module (that module
+// will be empty). If there is a system module that declares
+// `header "float.h"`, then the builtin float.h will join
+// that module. The system float.h (if present) will be treated
+// as a textual header in the sytem module.
+module _Builtin_float [system] {
+ header "float.h"
+ export *
+}
+
+module _Builtin_inttypes [system] {
+ header "inttypes.h"
+ export *
+}
+
+module _Builtin_iso646 [system] {
+ header "iso646.h"
+ export *
+}
+
+module _Builtin_limits [system] {
+ header "limits.h"
+ export *
+}
+
+module _Builtin_stdalign [system] {
+ header "stdalign.h"
+ export *
+}
+
+// When -fbuiltin-headers-in-system-modules is passed, only
+// the top level headers are removed, the implementation headers
+// will always be in their submodules. That means when stdarg.h
+// is included, it will still import this module and make the
+// appropriate submodules visible.
+module _Builtin_stdarg [system] {
+ textual header "stdarg.h"
+
+ explicit module __gnuc_va_list {
+ header "__stdarg___gnuc_va_list.h"
+ export *
+ }
+
+ explicit module __va_copy {
+ header "__stdarg___va_copy.h"
+ export *
+ }
+
+ explicit module va_arg {
+ header "__stdarg_va_arg.h"
+ export *
+ }
+
+ explicit module va_copy {
+ header "__stdarg_va_copy.h"
+ export *
+ }
+
+ explicit module va_list {
+ header "__stdarg_va_list.h"
+ export *
+ }
+}
+
+module _Builtin_stdatomic [system] {
+ header "stdatomic.h"
+ export *
+}
+
+module _Builtin_stdbool [system] {
+ header "stdbool.h"
+ export *
+}
+
+module _Builtin_stddef [system] {
+ textual header "stddef.h"
+
+ explicit module max_align_t {
+ header "__stddef_max_align_t.h"
+ export *
+ }
+
+ explicit module null {
+ header "__stddef_null.h"
+ export *
+ }
+
+ explicit module nullptr_t {
+ header "__stddef_nullptr_t.h"
+ export *
+ }
+
+ explicit module offsetof {
+ header "__stddef_offsetof.h"
+ export *
+ }
+
+ explicit module ptrdiff_t {
+ header "__stddef_ptrdiff_t.h"
+ export *
+ }
+
+ explicit module rsize_t {
+ header "__stddef_rsize_t.h"
+ export *
+ }
+
+ explicit module size_t {
+ header "__stddef_size_t.h"
+ export *
+ }
+
+ explicit module unreachable {
+ header "__stddef_unreachable.h"
+ export *
+ }
+
+ explicit module wchar_t {
+ header "__stddef_wchar_t.h"
+ export *
+ }
+}
+
+/* wint_t is provided by <wchar.h> and not <stddef.h>. It's here
+ * for compatibility, but must be explicitly requested. Therefore
+ * __stddef_wint_t.h is not part of _Builtin_stddef. */
+module _Builtin_stddef_wint_t [system] {
+ header "__stddef_wint_t.h"
+ export *
+}
+
+module _Builtin_stdint [system] {
+ header "stdint.h"
+ export *
+}
+
+module _Builtin_stdnoreturn [system] {
+ header "stdnoreturn.h"
+ export *
+}
+
+module _Builtin_tgmath [system] {
+ header "tgmath.h"
+ export *
+}
+
+module _Builtin_unwind [system] {
+ header "unwind.h"
+ export *
}
+// End -fbuiltin-headers-in-system-modules affected modules
module opencl_c {
requires opencl