65 Commits

Author SHA1 Message Date
Connector Switch
12e5bd1e30
[libc] Add IN6_IS_ADDR_V4COMPAT (#172646)
This patch adds the `IN6_IS_ADDR_V4COMPAT` macro, which checks whether
an address is IPv4-compatible.
2025-12-18 23:13:54 +08:00
Connector Switch
e071e43589
[libc] Add IN6_IS_ADDR_V4MAPPED (#172645)
This patch adds the `IN6_IS_ADDR_V4MAPPED` macro, which checks whether
an address is IPv4 mapped address.
2025-12-18 23:12:49 +08:00
Connector Switch
12d4889a0a
[libc] Add IN6_IS_ADDR_MC* (#172643)
This patch adds the `IN6_IS_ADDR_MC*` macro, which checks whether an
address is multicast node-local address, multicast link-local address,
multicast site-local address, multicast organization-local address and
multicast global address.
2025-12-18 23:11:35 +08:00
Connector Switch
3f79d13aff
[libc] Add IN6_IS_ADDR_MULTICAST (#172498)
This patch adds the `IN6_IS_ADDR_MULTICAST` macro, which checks whether
an address is multicast address.
2025-12-18 23:10:33 +08:00
Connector Switch
ecd46d350a
[libc] Add IN6_IS_ADDR_LOOPBACK (#172312)
This patch adds the `IN6_IS_ADDR_LOOPBACK` macro, which checks whether
an address is loopback address.
2025-12-18 23:09:35 +08:00
Connector Switch
f904c2ad59
[libc] Add IN6_IS_ADDR_UNSPECIFIED (#172311)
This patch adds the `IN6_IS_ADDR_UNSPECIFIED` macro, which checks
whether an address is unspecified address.
2025-12-18 23:06:54 +08:00
Connector Switch
62ee2cf0f4
[libc] Add IN6_IS_ADDR_{LINK, SITE}LOCAL (#168207)
This patch introduces two macros in `netinet/in.h`. The redundant tests
for macro values in the testcases have been removed.
2025-12-13 10:57:38 +08:00
lntue
c597a4f476
Revert "[libc] Add -Werror for libc tests" (#164684)
Reverts llvm/llvm-project#160413
2025-10-22 19:05:10 +00:00
Vinay Deshmukh
5d6c00cd0f
[libc] Add -Werror for libc tests (#160413)
Relates to https://github.com/llvm/llvm-project/issues/119281

Note:

1) As this PR enables `-Werror` for `libc` tests, it's very likely some
downstream CI's may fail / start failing, so it's very likely this PR
may need to be reverted and re-applied.

P.S.

I do not have merge permissions, so I will need one of the reviews to
merge it for me. Thank you!
2025-10-22 14:32:21 -04:00
Connector Switch
c4ceb8d7e5
[libc] add IPV6 related macros (#162219) 2025-10-17 23:41:52 +08:00
Connector Switch
6b1604ac30
[libc] add IPPROTO related macros (#161855) 2025-10-06 11:46:45 +08:00
lntue
e361c0fbe5
[libc] Fix stdbit C tests for older clang. (#160157) 2025-09-22 17:51:27 +00:00
Vinay Deshmukh
beb743b982
[libc] Add -Wextra for libc tests (#153321)
RE apply https://github.com/llvm/llvm-project/pull/133643/commits#top
2025-09-22 12:56:38 -04:00
Connector Switch
78579b9157
[libc] Implement CMPLX related macros (#156344) 2025-09-05 10:08:04 +08:00
William Huynh
33fe6353ef
Revert "[libc] Add -Wextra for libc tests" (#153169)
Reverts llvm/llvm-project#133643
2025-08-12 11:40:14 +00:00
Vinay Deshmukh
e617dc80bf
[libc] Add -Wextra for libc tests (#133643)
* Relates to: https://github.com/llvm/llvm-project/issues/119281
2025-08-12 12:27:13 +01:00
lntue
a676ecd83f
[libc][math] Add POSIX math constants to math.h header. (#149150)
https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/math.h.html
2025-07-18 11:28:22 -04:00
Roland McGrath
1dbc98294a
[libc] Fix SPDX-License-Identifier file header comment typos (#122776) 2025-01-14 10:53:41 -08:00
Roland McGrath
5e4b41c1d5
[libc] Add compile tests for each public header (#122527)
This adds a test that consists of compiling `#include <...>`,
pretty much alone, for each public header file in each different
language mode (`-std=...` compiler switch) with -Werror and many
warnings enabled.

There are several headers that have bugs when used alone, and
many more headers that have bugs in certain language modes.  So
for now, compiling the new tests is gated on the cmake switch
-DLLVM_LIBC_BUILD_HEADER_TESTS=ON.  When all the bugs are fixed,
the switch will be removed so future regressions don't land.
2025-01-11 17:24:37 -08:00
Nick Desaulniers
1d06157b9e
[libc] fix -Wgcc-compat (#120303)
I don't quite recall why I added those in the first place. These tests build
without diagnostics for both clang and GCC with this fix.

Fixes: #114653
2024-12-17 13:30:20 -08:00
Nick Desaulniers
89560cd612
[libc] disable failing include tests (#114619)
These are failing to link for some buildbots. It's not immediately clear
why,
disable these and add a todo to investigate.

Link: #111403
Link: #114566
Link: #114618
2024-11-01 15:32:48 -07:00
Nick Desaulniers
acd04c2e18
[libc][cmake] disable include tests in overlay mode (#114566)
This avoids -Wmacro-redefinition diagnostics observed when building the
libc_include_tests ninja target.

For example, the signbit_test will attempt to include BOTH our math-macros.h
(via math-function-macros.h), and the system's math.h (via hdr/math_macros.h).

While it's nice that we can get some coverage of the headers we will provide to
end users of fullbuilds in CI of overlay builds, it's not worth chasing each
individual conflict and disabling some include tests as conflicts arise.

Disable the include tests unless `-DLLVM_LIBC_FULL_BUILD=ON` is specified.
2024-11-01 15:01:11 -07:00
Shourya Goel
f4ba6a654d
[libc][complex] Set up headers and add documentation for complex.h. (#111659)
Refer: 7.3.1 from [ISO
SPEC](https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf)

I have added complex variants of F16 and F128 in libc doc but have
omitted support for them since we will have to first investigate how
their support matrix for clang and gcc looks like, and then add header
guards for them accordingly. Planning to add them in follow up PRs once
this gets landed.
2024-10-14 13:35:04 -04:00
Shourya Goel
4e33afee5a
[libc][math] Implement issignaling and iscanonical macro. (#111403)
#109201
2024-10-09 10:25:49 -07:00
Shourya Goel
b935d312f1
[libc][math] Reapply and fix issignaling macro. (#110011)
reapply #109615
2024-09-25 15:39:55 -04:00
lntue
808c498f52
Revert "[libc][math] Implement issignaling macro." (#109992)
Reverts llvm/llvm-project#109615
2024-09-25 10:58:08 -04:00
Shourya Goel
ac802a3148
[libc][math] Implement issignaling macro. (#109615)
#109201
2024-09-25 10:35:20 -04:00
Shourya Goel
ba5e195809
[libc][math] Implement issubnormal macro. (#109572)
#109201
2024-09-23 00:50:46 -04:00
Shourya Goel
aaa637d8d0
[libc][math] Implement isnormal macro. (#109547)
#109201
2024-09-21 22:26:56 -04:00
Shourya Goel
56124feeb8
[libc][math] Implement fpclassify macro. (#109519)
#109201
2024-09-21 11:49:23 -04:00
Shourya Goel
739ede400b
[libc][[math] Implement IsZero Macro (#109336)
#109201
2024-09-20 13:00:01 -04:00
lntue
57ae618375
[libc] Fix signbit include test. (#98793) 2024-07-13 23:39:53 -04:00
Akiel
3604c23dfc
[libc][math] implement signbit and math macro unit tests (#97791)
This PR resolves #96322 and implements the `signbit` macro under a new
header `generic-math-macros.h`. This also removed the `TODO` in
`math-macros.h` and moves `isfinite`, `isinf`, and `isnan` to the same
generic maths header. Finally, a test file
`generic-math-macros_test.cpp` that adds coverage to the above 4 macros.

Fixes #96322.
2024-07-13 23:01:36 -04:00
lntue
8b4251729f
[libc] Add libc_include_tests suites to check-libc target. (#98749) 2024-07-13 22:49:52 -04:00
Petr Hosek
5ff3ff33ff
[libc] Migrate to using LIBC_NAMESPACE_DECL for namespace declaration (#98597)
This is a part of #97655.
2024-07-12 09:28:41 -07:00
Mehdi Amini
ce9035f5bd
Revert "[libc] Migrate to using LIBC_NAMESPACE_DECL for namespace declaration" (#98593)
Reverts llvm/llvm-project#98075

bots are broken
2024-07-12 09:12:13 +02:00
Petr Hosek
3f30effe1b
[libc] Migrate to using LIBC_NAMESPACE_DECL for namespace declaration (#98075)
This is a part of #97655.
2024-07-11 12:35:22 -07:00
aniplcc
11bd19a7a2
[libc][assert] define __STDC_VERSION_ASSERT_H__ (#87592)
Fixes #87561
2024-04-24 13:01:16 -07:00
Nick Desaulniers
f0c0ddae45
[libc] implement the final macros for stdbit.h support (#84798)
Relevant sections of n3096:
- 7.18.1p1
- 7.18.2
2024-03-12 08:39:17 -07:00
lntue
762cbd82da
[libc][NFC] Do not add libc test framework and -fno-rtti to C tests. (#84837) 2024-03-11 17:43:50 -04:00
lntue
a25fa92d87
[libc][stdbit] Add C tests for stdbit generic macros. (#84670)
Currently there is no tests for generic macros of generated `stdbit.h`
header in C, and it is easy to make typo mistakes as in
https://github.com/llvm/llvm-project/issues/84658. In this patch, we
add a simple test for them in C.
2024-03-11 15:39:05 -04:00
Michael Flanders
75b0d384fb
[libc][stdbit][c23] adds implementation of stdc_bit_ceil functions (#84657)
Closes #84652.

Based on #84233.
2024-03-10 12:53:28 -04:00
Nick Desaulniers
101a13df71
[libc][stdbit] implement stdc_bit_floor (C23) (#84233) 2024-03-07 08:38:04 -08:00
Nick Desaulniers
041638c429
[libc][stdbit] implement stdc_bit_width (C23) (#83892) 2024-03-05 09:49:41 -08:00
Nick Desaulniers
93e423f19f
[libc][test] update constants used in stdbit test (#83893)
Either:
- I forgot my alphabet (that E comes before F).
- My juvenile inner brain finds unsigned literal constants with the sequence FU
  funny.

¿Por qué no los dos?
2024-03-04 12:35:57 -08:00
lntue
73aab2f697
[libc] Revert https://github.com/llvm/llvm-project/pull/83199 since it broke Fuchsia. (#83374)
With some header fix forward for GPU builds.
2024-02-29 14:43:53 -05:00
Joseph Huber
04e8653f18
[libc] Add "include/" to the LLVM include directories (#83199)
Summary:
Recent changes added an include path in the float128 type that used the
internal `libc` path to find the macro. This doesn't work once it's
installed because we need to search from the root of the install dir.
This patch adds "include/" to the include path so that our inclusion
of installed headers always match the internal use.
2024-02-27 17:45:15 -06:00
Nick Desaulniers
06bcd9da16
[libc][stdbit] implement stdc_has_single_bit (C23) (#83168) 2024-02-27 13:45:37 -08:00
Nick Desaulniers
d8406d48a8
[libc][stdbit] implement stdc_count_ones (C23) (#82444) 2024-02-26 09:25:24 -08:00
Nick Desaulniers
f70d5c0bc8
[libc][stdbit] implement stdc_count_zeros (C23) (#82437) 2024-02-26 09:23:15 -08:00