From c276a35d6e3eaaf91626e21838153c362ae14912 Mon Sep 17 00:00:00 2001 From: c8ef Date: Mon, 1 Sep 2025 23:24:33 +0800 Subject: [PATCH 1/7] [libc] Implement CMPLX related macros --- libc/docs/headers/complex.rst | 2 +- libc/include/llvm-libc-macros/CMakeLists.txt | 14 ++++++++------ libc/include/llvm-libc-macros/complex-macros.h | 14 ++++++++++++++ libc/test/include/complex_test.cpp | 9 +++++++++ 4 files changed, 32 insertions(+), 7 deletions(-) diff --git a/libc/docs/headers/complex.rst b/libc/docs/headers/complex.rst index 272cf00c883bc..7195f2695457e 100644 --- a/libc/docs/headers/complex.rst +++ b/libc/docs/headers/complex.rst @@ -10,7 +10,7 @@ Macros +-----------+------------------+-----------------+------------------------+----------------------+------------------------+------------------------+----------------------------+ | | (float) | (double) | (long double) | (float16) | (float128) | C23 Definition Section | C23 Error Handling Section | +===========+==================+=================+========================+======================+========================+========================+============================+ -| CMPLX | | | | | | 7.3.9.3 | N/A | +| CMPLX | |check| | |check| | |check| | |check| | |check| | 7.3.9.3 | N/A | +-----------+------------------+-----------------+------------------------+----------------------+------------------------+------------------------+----------------------------+ Functions diff --git a/libc/include/llvm-libc-macros/CMakeLists.txt b/libc/include/llvm-libc-macros/CMakeLists.txt index 7aa549ddc75d9..055e11f958e02 100644 --- a/libc/include/llvm-libc-macros/CMakeLists.txt +++ b/libc/include/llvm-libc-macros/CMakeLists.txt @@ -61,12 +61,6 @@ add_macro_header( fcntl-macros.h ) -add_macro_header( - complex_macros - HDR - complex-macros.h -) - add_macro_header( features_macros HDR @@ -103,6 +97,14 @@ add_macro_header( float16-macros.h ) +add_macro_header( + complex_macros + HDR + complex-macros.h + DEPENDS + .float16_macros +) + add_macro_header( limits_macros HDR diff --git a/libc/include/llvm-libc-macros/complex-macros.h b/libc/include/llvm-libc-macros/complex-macros.h index 427c68d289e0b..fdcc9c7831dd1 100644 --- a/libc/include/llvm-libc-macros/complex-macros.h +++ b/libc/include/llvm-libc-macros/complex-macros.h @@ -9,6 +9,8 @@ #ifndef __LLVM_LIBC_MACROS_COMPLEX_MACROS_H #define __LLVM_LIBC_MACROS_COMPLEX_MACROS_H +#include "float16-macros.h" + #ifndef __STDC_NO_COMPLEX__ #define __STDC_VERSION_COMPLEX_H__ 202311L @@ -19,6 +21,18 @@ // TODO: Add imaginary macros once GCC or Clang support _Imaginary builtin-type. +#define CMPLX(x, y) __builtin_complex((double)(x), (double)(y)) +#define CMPLXF(x, y) __builtin_complex((float)(x), (float)(y)) +#define CMPLXL(x, y) __builtin_complex((long double)(x), (long double)(y)) + +#ifdef LIBC_TYPES_HAS_FLOAT16 +#define CMPLXF16(x, y) __builtin_complex((float16)(x), (float16)(y)) +#endif // LIBC_TYPES_HAS_FLOAT16 + +#ifdef LIBC_TYPES_HAS_FLOAT128 +#define CMPLXF128(x, y) __builtin_complex((float128)(x), (float128)(y)) +#endif // LIBC_TYPES_HAS_FLOAT128 + #endif #endif // __LLVM_LIBC_MACROS_COMPLEX_MACROS_H diff --git a/libc/test/include/complex_test.cpp b/libc/test/include/complex_test.cpp index da833fb527381..869d2a935986e 100644 --- a/libc/test/include/complex_test.cpp +++ b/libc/test/include/complex_test.cpp @@ -17,3 +17,12 @@ TEST(LlvmLibcComplexTest, VersionMacro) { TEST(LlvmLibcComplexTest, IMacro) { EXPECT_CFP_EQ(1.0fi, I); } TEST(LlvmLibcComplexTest, _Complex_IMacro) { EXPECT_CFP_EQ(1.0fi, _Complex_I); } + +TEST(LlvmLibcComplexTest, CMPLXMacro) { + EXPECT_CFP_EQ(CMPLX(0, 1.0), I); + EXPECT_CFP_EQ(CMPLX(1.0, 0), 1.0); + EXPECT_CFP_EQ(CMPLXF(0, 1.0f), I); + EXPECT_CFP_EQ(CMPLXF(1.0f, 0), 1.0f); + EXPECT_CFP_EQ(CMPLXL(0, 1.0l), I); + EXPECT_CFP_EQ(CMPLXL(1.0l, 0), 1.0l); +} From 65edd0ba245d51a7f67df2cd36420076f140a58d Mon Sep 17 00:00:00 2001 From: c8ef Date: Tue, 2 Sep 2025 22:14:51 +0800 Subject: [PATCH 2/7] [libc] Implement CMPLX related macros --- libc/test/include/complex_test.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libc/test/include/complex_test.cpp b/libc/test/include/complex_test.cpp index 869d2a935986e..b14423dd89828 100644 --- a/libc/test/include/complex_test.cpp +++ b/libc/test/include/complex_test.cpp @@ -25,4 +25,9 @@ TEST(LlvmLibcComplexTest, CMPLXMacro) { EXPECT_CFP_EQ(CMPLXF(1.0f, 0), 1.0f); EXPECT_CFP_EQ(CMPLXL(0, 1.0l), I); EXPECT_CFP_EQ(CMPLXL(1.0l, 0), 1.0l); + +#ifdef LIBC_TYPES_HAS_FLOAT128 + EXPECT_CFP_EQ(CMPLXF128(0, 1.0), I); + EXPECT_CFP_EQ(CMPLXF128(1.0, 0), 1.0); +#endif // LIBC_TYPES_HAS_FLOAT128 } From 3904794bcfd5dec6e97943bf0f128d1051f4b533 Mon Sep 17 00:00:00 2001 From: c8ef Date: Tue, 2 Sep 2025 22:24:52 +0800 Subject: [PATCH 3/7] [libc] Implement CMPLX related macros --- libc/test/include/complex_test.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libc/test/include/complex_test.cpp b/libc/test/include/complex_test.cpp index b14423dd89828..55aca9d10194f 100644 --- a/libc/test/include/complex_test.cpp +++ b/libc/test/include/complex_test.cpp @@ -26,6 +26,12 @@ TEST(LlvmLibcComplexTest, CMPLXMacro) { EXPECT_CFP_EQ(CMPLXL(0, 1.0l), I); EXPECT_CFP_EQ(CMPLXL(1.0l, 0), 1.0l); +// TODO: Uncomment these after issues#156463 is resolved. +// #ifdef LIBC_TYPES_HAS_FLOAT16 +// EXPECT_CFP_EQ(CMPLXF16(0, 1.0), I); +// EXPECT_CFP_EQ(CMPLXF16(1.0, 0), 1.0); +// #endif // LIBC_TYPES_HAS_FLOAT16 + #ifdef LIBC_TYPES_HAS_FLOAT128 EXPECT_CFP_EQ(CMPLXF128(0, 1.0), I); EXPECT_CFP_EQ(CMPLXF128(1.0, 0), 1.0); From 008cd98bc25abad09b7eae384512d319fa89b35a Mon Sep 17 00:00:00 2001 From: c8ef Date: Tue, 2 Sep 2025 22:28:39 +0800 Subject: [PATCH 4/7] [libc] Implement CMPLX related macros --- libc/test/include/complex_test.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libc/test/include/complex_test.cpp b/libc/test/include/complex_test.cpp index 55aca9d10194f..9ad67a895e2ae 100644 --- a/libc/test/include/complex_test.cpp +++ b/libc/test/include/complex_test.cpp @@ -26,11 +26,11 @@ TEST(LlvmLibcComplexTest, CMPLXMacro) { EXPECT_CFP_EQ(CMPLXL(0, 1.0l), I); EXPECT_CFP_EQ(CMPLXL(1.0l, 0), 1.0l); -// TODO: Uncomment these after issues#156463 is resolved. -// #ifdef LIBC_TYPES_HAS_FLOAT16 -// EXPECT_CFP_EQ(CMPLXF16(0, 1.0), I); -// EXPECT_CFP_EQ(CMPLXF16(1.0, 0), 1.0); -// #endif // LIBC_TYPES_HAS_FLOAT16 + // TODO: Uncomment these after issues#156463 is resolved. + // #ifdef LIBC_TYPES_HAS_FLOAT16 + // EXPECT_CFP_EQ(CMPLXF16(0, 1.0), I); + // EXPECT_CFP_EQ(CMPLXF16(1.0, 0), 1.0); + // #endif // LIBC_TYPES_HAS_FLOAT16 #ifdef LIBC_TYPES_HAS_FLOAT128 EXPECT_CFP_EQ(CMPLXF128(0, 1.0), I); From 7421d37bca6e9271abad631542ec468fc4336e25 Mon Sep 17 00:00:00 2001 From: c8ef Date: Fri, 5 Sep 2025 00:28:28 +0800 Subject: [PATCH 5/7] address review comments --- libc/include/llvm-libc-macros/CMakeLists.txt | 29 +++++++++---- .../llvm-libc-macros/cfloat128-macros.h | 41 +++++++++++++++++++ .../llvm-libc-macros/cfloat16-macros.h | 20 +++++++++ .../include/llvm-libc-macros/complex-macros.h | 20 +++++---- libc/include/llvm-libc-types/CMakeLists.txt | 9 +++- libc/include/llvm-libc-types/cfloat128.h | 34 +++------------ libc/include/llvm-libc-types/cfloat16.h | 11 ++--- libc/test/CMakeLists.txt | 12 +++--- libc/test/include/complex_test.cpp | 13 +++--- 9 files changed, 124 insertions(+), 65 deletions(-) create mode 100644 libc/include/llvm-libc-macros/cfloat128-macros.h create mode 100644 libc/include/llvm-libc-macros/cfloat16-macros.h diff --git a/libc/include/llvm-libc-macros/CMakeLists.txt b/libc/include/llvm-libc-macros/CMakeLists.txt index 055e11f958e02..f71540313f0b3 100644 --- a/libc/include/llvm-libc-macros/CMakeLists.txt +++ b/libc/include/llvm-libc-macros/CMakeLists.txt @@ -61,6 +61,27 @@ add_macro_header( fcntl-macros.h ) +add_macro_header( + cfloat128_macros + HDR + cfloat128-macros.h +) + +add_macro_header( + cfloat16_macros + HDR + cfloat16-macros.h +) + +add_macro_header( + complex_macros + HDR + complex-macros.h + DEPENDS + .cfloat128_macros + .cfloat16_macros +) + add_macro_header( features_macros HDR @@ -97,14 +118,6 @@ add_macro_header( float16-macros.h ) -add_macro_header( - complex_macros - HDR - complex-macros.h - DEPENDS - .float16_macros -) - add_macro_header( limits_macros HDR diff --git a/libc/include/llvm-libc-macros/cfloat128-macros.h b/libc/include/llvm-libc-macros/cfloat128-macros.h new file mode 100644 index 0000000000000..5f28cfa21aaee --- /dev/null +++ b/libc/include/llvm-libc-macros/cfloat128-macros.h @@ -0,0 +1,41 @@ +//===-- Detection of _Complex _Float128 compiler builtin type -------------===// +// +// 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_MACROS_CFLOAT128_MACROS_H +#define LLVM_LIBC_MACROS_CFLOAT128_MACROS_H + +#include "float-macros.h" // LDBL_MANT_DIG + +// Currently, the complex variant of C23 `_Float128` type is only defined as a +// built-in type in GCC 7 or later, for C and in GCC 13 or later, for C++. For +// clang, the complex variant of `__float128` is defined instead, and only on +// x86-64 targets for clang 11 or later. +// +// TODO: Update the complex variant of C23 `_Float128` type detection again when +// clang supports it. +#ifdef __clang__ +#if (__clang_major__ >= 11) && \ + (defined(__FLOAT128__) || defined(__SIZEOF_FLOAT128__)) +// Use _Complex __float128 type. clang uses __SIZEOF_FLOAT128__ or __FLOAT128__ +// macro to notify the availability of __float128 type: +// https://reviews.llvm.org/D15120 +#define LIBC_TYPES_HAS_CFLOAT128 +#endif +#elif defined(__GNUC__) +#if (defined(__STDC_IEC_60559_COMPLEX__) || defined(__SIZEOF_FLOAT128__)) && \ + (__GNUC__ >= 13 || (!defined(__cplusplus))) +#define LIBC_TYPES_HAS_CFLOAT128 +#endif +#endif + +#if !defined(LIBC_TYPES_HAS_CFLOAT128) && (LDBL_MANT_DIG == 113) +#define LIBC_TYPES_HAS_CFLOAT128 +#define LIBC_TYPES_CFLOAT128_IS_COMPLEX_LONG_DOUBLE +#endif + +#endif // LLVM_LIBC_MACROS_CFLOAT128_MACROS_H diff --git a/libc/include/llvm-libc-macros/cfloat16-macros.h b/libc/include/llvm-libc-macros/cfloat16-macros.h new file mode 100644 index 0000000000000..1f10adf3e3f2d --- /dev/null +++ b/libc/include/llvm-libc-macros/cfloat16-macros.h @@ -0,0 +1,20 @@ +//===-- Detection of _Complex _Float16 compiler builtin type --------------===// +// +// 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_MACROS_CFLOAT16_MACROS_H +#define LLVM_LIBC_MACROS_CFLOAT16_MACROS_H + +#if defined(__FLT16_MANT_DIG__) && \ + (!defined(__GNUC__) || __GNUC__ >= 13 || \ + (defined(__clang__) && __clang_major__ >= 14)) && \ + !defined(__arm__) && !defined(_M_ARM) && !defined(__riscv) && \ + !defined(_WIN32) +#define LIBC_TYPES_HAS_CFLOAT16 +#endif + +#endif // LLVM_LIBC_MACROS_CFLOAT16_MACROS_H diff --git a/libc/include/llvm-libc-macros/complex-macros.h b/libc/include/llvm-libc-macros/complex-macros.h index fdcc9c7831dd1..d98c6fdb306c8 100644 --- a/libc/include/llvm-libc-macros/complex-macros.h +++ b/libc/include/llvm-libc-macros/complex-macros.h @@ -9,7 +9,8 @@ #ifndef __LLVM_LIBC_MACROS_COMPLEX_MACROS_H #define __LLVM_LIBC_MACROS_COMPLEX_MACROS_H -#include "float16-macros.h" +#include "cfloat128-macros.h" +#include "cfloat16-macros.h" #ifndef __STDC_NO_COMPLEX__ @@ -25,14 +26,19 @@ #define CMPLXF(x, y) __builtin_complex((float)(x), (float)(y)) #define CMPLXL(x, y) __builtin_complex((long double)(x), (long double)(y)) -#ifdef LIBC_TYPES_HAS_FLOAT16 -#define CMPLXF16(x, y) __builtin_complex((float16)(x), (float16)(y)) -#endif // LIBC_TYPES_HAS_FLOAT16 +#ifdef LIBC_TYPES_HAS_CFLOAT16 +#if !defined(__clang__) || (__clang_major__ >= 22 && __clang_minor__ > 0) +#define CMPLXF16(x, y) __builtin_complex((_Float16)(x), (_Float16)(y)) +#else +#define CMPLXF16(x, y) \ + ((complex _Float16)(__builtin_complex((float)(x), (float)(y)))) +#endif +#endif // LIBC_TYPES_HAS_CFLOAT16 -#ifdef LIBC_TYPES_HAS_FLOAT128 +#ifdef LIBC_TYPES_HAS_CFLOAT128 #define CMPLXF128(x, y) __builtin_complex((float128)(x), (float128)(y)) -#endif // LIBC_TYPES_HAS_FLOAT128 +#endif // LIBC_TYPES_HAS_CFLOAT128 -#endif +#endif // __STDC_NO_COMPLEX__ #endif // __LLVM_LIBC_MACROS_COMPLEX_MACROS_H diff --git a/libc/include/llvm-libc-types/CMakeLists.txt b/libc/include/llvm-libc-types/CMakeLists.txt index 451beae6f1e6f..dd373b9b1e259 100644 --- a/libc/include/llvm-libc-types/CMakeLists.txt +++ b/libc/include/llvm-libc-types/CMakeLists.txt @@ -149,9 +149,14 @@ add_header( HDR cfloat128.h DEPENDS - libc.include.llvm-libc-macros.float_macros + libc.include.llvm-libc-macros.cfloat128_macros +) +add_header(cfloat16 + HDR + cfloat16.h + DEPENDS + libc.include.llvm-libc-macros.cfloat16_macros ) -add_header(cfloat16 HDR cfloat16.h) add_header(fsblkcnt_t HDR fsblkcnt_t.h) add_header(fsfilcnt_t HDR fsfilcnt_t.h) add_header( diff --git a/libc/include/llvm-libc-types/cfloat128.h b/libc/include/llvm-libc-types/cfloat128.h index 83fad87910137..25b4cc7345a30 100644 --- a/libc/include/llvm-libc-types/cfloat128.h +++ b/libc/include/llvm-libc-types/cfloat128.h @@ -9,36 +9,14 @@ #ifndef LLVM_LIBC_TYPES_CFLOAT128_H #define LLVM_LIBC_TYPES_CFLOAT128_H -#include "../llvm-libc-macros/float-macros.h" // LDBL_MANT_DIG +#include "../llvm-libc-macros/cfloat128-macros.h" -// Currently, the complex variant of C23 `_Float128` type is only defined as a -// built-in type in GCC 7 or later, for C and in GCC 13 or later, for C++. For -// clang, the complex variant of `__float128` is defined instead, and only on -// x86-64 targets for clang 11 or later. -// -// TODO: Update the complex variant of C23 `_Float128` type detection again when -// clang supports it. -#ifdef __clang__ -#if (__clang_major__ >= 11) && \ - (defined(__FLOAT128__) || defined(__SIZEOF_FLOAT128__)) -// Use _Complex __float128 type. clang uses __SIZEOF_FLOAT128__ or __FLOAT128__ -// macro to notify the availability of __float128 type: -// https://reviews.llvm.org/D15120 -#define LIBC_TYPES_HAS_CFLOAT128 +#ifdef LIBC_TYPES_HAS_CFLOAT128 +#ifndef LIBC_TYPES_CFLOAT128_IS_COMPLEX_LONG_DOUBLE typedef _Complex __float128 cfloat128; -#endif -#elif defined(__GNUC__) -#if (defined(__STDC_IEC_60559_COMPLEX__) || defined(__SIZEOF_FLOAT128__)) && \ - (__GNUC__ >= 13 || (!defined(__cplusplus))) -#define LIBC_TYPES_HAS_CFLOAT128 -typedef _Complex _Float128 cfloat128; -#endif -#endif - -#if !defined(LIBC_TYPES_HAS_CFLOAT128) && (LDBL_MANT_DIG == 113) -#define LIBC_TYPES_HAS_CFLOAT128 -#define LIBC_TYPES_CFLOAT128_IS_COMPLEX_LONG_DOUBLE +#else typedef _Complex long double cfloat128; -#endif +#endif // LIBC_TYPES_CFLOAT128_IS_COMPLEX_LONG_DOUBLE +#endif // LIBC_TYPES_HAS_CFLOAT128 #endif // LLVM_LIBC_TYPES_CFLOAT128_H diff --git a/libc/include/llvm-libc-types/cfloat16.h b/libc/include/llvm-libc-types/cfloat16.h index 2d4cef7562720..644a6469f0592 100644 --- a/libc/include/llvm-libc-types/cfloat16.h +++ b/libc/include/llvm-libc-types/cfloat16.h @@ -9,13 +9,10 @@ #ifndef LLVM_LIBC_TYPES_CFLOAT16_H #define LLVM_LIBC_TYPES_CFLOAT16_H -#if defined(__FLT16_MANT_DIG__) && \ - (!defined(__GNUC__) || __GNUC__ >= 13 || \ - (defined(__clang__) && __clang_major__ >= 14)) && \ - !defined(__arm__) && !defined(_M_ARM) && !defined(__riscv) && \ - !defined(_WIN32) -#define LIBC_TYPES_HAS_CFLOAT16 +#include "../llvm-libc-macros/cfloat16-macros.h" + +#ifdef LIBC_TYPES_HAS_CFLOAT16 typedef _Complex _Float16 cfloat16; -#endif +#endif // LIBC_TYPES_HAS_CFLOAT16 #endif // LLVM_LIBC_TYPES_CFLOAT16_H diff --git a/libc/test/CMakeLists.txt b/libc/test/CMakeLists.txt index 011ad6aeb34b7..74438946d5417 100644 --- a/libc/test/CMakeLists.txt +++ b/libc/test/CMakeLists.txt @@ -18,13 +18,13 @@ if(LIBC_TARGET_OS_IS_GPU) endif() endif() -add_subdirectory(src) -add_subdirectory(utils) -add_subdirectory(shared) +# add_subdirectory(src) +# add_subdirectory(utils) +# add_subdirectory(shared) -if(NOT LLVM_LIBC_FULL_BUILD) - return() -endif() +# if(NOT LLVM_LIBC_FULL_BUILD) +# return() +# endif() add_subdirectory(include) diff --git a/libc/test/include/complex_test.cpp b/libc/test/include/complex_test.cpp index 9ad67a895e2ae..6f900aa4fb674 100644 --- a/libc/test/include/complex_test.cpp +++ b/libc/test/include/complex_test.cpp @@ -26,14 +26,13 @@ TEST(LlvmLibcComplexTest, CMPLXMacro) { EXPECT_CFP_EQ(CMPLXL(0, 1.0l), I); EXPECT_CFP_EQ(CMPLXL(1.0l, 0), 1.0l); - // TODO: Uncomment these after issues#156463 is resolved. - // #ifdef LIBC_TYPES_HAS_FLOAT16 - // EXPECT_CFP_EQ(CMPLXF16(0, 1.0), I); - // EXPECT_CFP_EQ(CMPLXF16(1.0, 0), 1.0); - // #endif // LIBC_TYPES_HAS_FLOAT16 +#ifdef LIBC_TYPES_HAS_CFLOAT16 + EXPECT_CFP_EQ(CMPLXF16(0, 1.0), I); + EXPECT_CFP_EQ(CMPLXF16(1.0, 0), 1.0); +#endif // LIBC_TYPES_HAS_CFLOAT16 -#ifdef LIBC_TYPES_HAS_FLOAT128 +#ifdef LIBC_TYPES_HAS_CFLOAT128 EXPECT_CFP_EQ(CMPLXF128(0, 1.0), I); EXPECT_CFP_EQ(CMPLXF128(1.0, 0), 1.0); -#endif // LIBC_TYPES_HAS_FLOAT128 +#endif // LIBC_TYPES_HAS_CFLOAT128 } From 1a69c77a84bec43539b4b5750e50c6c6b27ce4e1 Mon Sep 17 00:00:00 2001 From: c8ef Date: Fri, 5 Sep 2025 00:30:08 +0800 Subject: [PATCH 6/7] address review comments --- libc/test/CMakeLists.txt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/libc/test/CMakeLists.txt b/libc/test/CMakeLists.txt index 74438946d5417..011ad6aeb34b7 100644 --- a/libc/test/CMakeLists.txt +++ b/libc/test/CMakeLists.txt @@ -18,13 +18,13 @@ if(LIBC_TARGET_OS_IS_GPU) endif() endif() -# add_subdirectory(src) -# add_subdirectory(utils) -# add_subdirectory(shared) +add_subdirectory(src) +add_subdirectory(utils) +add_subdirectory(shared) -# if(NOT LLVM_LIBC_FULL_BUILD) -# return() -# endif() +if(NOT LLVM_LIBC_FULL_BUILD) + return() +endif() add_subdirectory(include) From c1cb3cb42976001104bc1a285f32aa64724b120f Mon Sep 17 00:00:00 2001 From: c8ef Date: Fri, 5 Sep 2025 00:35:38 +0800 Subject: [PATCH 7/7] format cmake --- libc/include/llvm-libc-types/CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libc/include/llvm-libc-types/CMakeLists.txt b/libc/include/llvm-libc-types/CMakeLists.txt index dd373b9b1e259..e9ed99cddb33f 100644 --- a/libc/include/llvm-libc-types/CMakeLists.txt +++ b/libc/include/llvm-libc-types/CMakeLists.txt @@ -151,7 +151,8 @@ add_header( DEPENDS libc.include.llvm-libc-macros.cfloat128_macros ) -add_header(cfloat16 +add_header( + cfloat16 HDR cfloat16.h DEPENDS