-
Notifications
You must be signed in to change notification settings - Fork 15k
[libc][annex_k] Add constraint_handler_t. #163239
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: users/bassiounix/spr/10-13-_libc_annex_k_add_rsize_t
Are you sure you want to change the base?
[libc][annex_k] Add constraint_handler_t. #163239
Conversation
|
Warning This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
This stack of pull requests is managed by Graphite. Learn more about stacking. |
|
@llvm/pr-subscribers-libc Author: Muhammad Bassiouni (bassiounix) ChangesRFC https://discourse.llvm.org/t/rfc-bounds-checking-interfaces-for-llvm-libc/87685 Add Full diff: https://github.com/llvm/llvm-project/pull/163239.diff 5 Files Affected:
diff --git a/libc/hdr/types/CMakeLists.txt b/libc/hdr/types/CMakeLists.txt
index 1ef1a2bee6f80..4129d35adfb9d 100644
--- a/libc/hdr/types/CMakeLists.txt
+++ b/libc/hdr/types/CMakeLists.txt
@@ -170,6 +170,15 @@ add_proxy_header_library(
libc.include.fcntl
)
+add_proxy_header_library(
+ constraint_handler_t
+ HDRS
+ constraint_handler_t.h
+ FULL_BUILD_DEPENDS
+ libc.include.llvm-libc-types.constraint_handler_t
+ libc.include.stdlib
+)
+
add_proxy_header_library(
errno_t
HDRS
diff --git a/libc/hdr/types/constraint_handler_t.h b/libc/hdr/types/constraint_handler_t.h
new file mode 100644
index 0000000000000..ca7798b84228e
--- /dev/null
+++ b/libc/hdr/types/constraint_handler_t.h
@@ -0,0 +1,18 @@
+//===-- Proxy for constraint_handler_t ------------------------------------===//
+//
+// 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 LLVM_LIBC_HDR_TYPES_CONSTRAINT_HANDLER_T_H
+#define LLVM_LIBC_HDR_TYPES_CONSTRAINT_HANDLER_T_H
+
+#define LIBC_HAS_ANNEX_K
+
+#include "include/llvm-libc-types/constraint_handler_t.h"
+
+#undef LIBC_HAS_ANNEX_K
+
+#endif // LLVM_LIBC_HDR_TYPES_CONSTRAINT_HANDLER_T_H
diff --git a/libc/include/llvm-libc-types/CMakeLists.txt b/libc/include/llvm-libc-types/CMakeLists.txt
index 8e22baa8dfba1..fa9768a0066c5 100644
--- a/libc/include/llvm-libc-types/CMakeLists.txt
+++ b/libc/include/llvm-libc-types/CMakeLists.txt
@@ -299,3 +299,5 @@ add_header(EFI_SYSTEM_TABLE
)
add_header(errno_t HDR errno_t.h)
+
+add_header(constraint_handler_t HDR constraint_handler_t.h DEPENDS .errno_t)
diff --git a/libc/include/llvm-libc-types/constraint_handler_t.h b/libc/include/llvm-libc-types/constraint_handler_t.h
new file mode 100644
index 0000000000000..efd21296cd399
--- /dev/null
+++ b/libc/include/llvm-libc-types/constraint_handler_t.h
@@ -0,0 +1,21 @@
+//===-- Definition of type constraint_handler_t ---------------------------===//
+//
+// 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 LLVM_LIBC_INCLUDE_LLVM_LIBC_TYPES_CONSTRAINT_HANDLER_T_H
+#define LLVM_LIBC_INCLUDE_LLVM_LIBC_TYPES_CONSTRAINT_HANDLER_T_H
+
+#include "errno_t.h"
+
+#ifdef LIBC_HAS_ANNEX_K
+
+typedef void (*constraint_handler_t)(const char *__restrict, void *__restrict,
+ errno_t);
+
+#endif // LIBC_HAS_ANNEX_K
+
+#endif // LLVM_LIBC_INCLUDE_LLVM_LIBC_TYPES_CONSTRAINT_HANDLER_T_H
diff --git a/libc/include/stdlib.yaml b/libc/include/stdlib.yaml
index 3b2ff13c684b1..29fd6bc3a1e75 100644
--- a/libc/include/stdlib.yaml
+++ b/libc/include/stdlib.yaml
@@ -12,6 +12,7 @@ types:
- type_name: __qsortcompare_t
- type_name: __qsortrcompare_t
- type_name: __search_compare_t
+ - type_name: constraint_handler_t
- type_name: div_t
- type_name: ldiv_t
- type_name: lldiv_t
|
d73fce3 to
2fff83c
Compare
9f0d7dd to
5383561
Compare
581009d to
e4f6c9c
Compare
5383561 to
c74da0b
Compare
e4f6c9c to
4490790
Compare
c74da0b to
aa63b69
Compare
3ce1678 to
49c7417
Compare
9b4e574 to
e411bb5
Compare
49c7417 to
5a59294
Compare
e411bb5 to
db9669f
Compare
d836ef1 to
b5b13c1
Compare
b5b13c1 to
865a661
Compare
90cf101 to
061abfe
Compare
865a661 to
696c143
Compare
061abfe to
bc3482b
Compare
696c143 to
1e25152
Compare

RFC https://discourse.llvm.org/t/rfc-bounds-checking-interfaces-for-llvm-libc/87685
Add
constraint_handler_ttype required by Annex K interface in LLVM libc.