[libc-commits] [libc] [libc][math] Qualify all functions to be constexpr (PR #195623)
via libc-commits
libc-commits at lists.llvm.org
Mon May 4 06:49:13 PDT 2026
github-actions[bot] wrote:
<!--PREMERGE ADVISOR COMMENT: Linux-->
# :penguin: Linux x64 Test Results
The build failed before running any tests. Click on a failure below to see the details.
<details>
<summary>libc/test/shared/CMakeFiles/libc.test.shared.shared_math_constexpr_test.__unit__.__NO_MISC_MATH_BASIC_OPS_OPT.__build__.dir/shared_math_constexpr_test.cpp.o</summary>
```
FAILED: libc/test/shared/CMakeFiles/libc.test.shared.shared_math_constexpr_test.__unit__.__NO_MISC_MATH_BASIC_OPS_OPT.__build__.dir/shared_math_constexpr_test.cpp.o
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin/clang++ --target=x86_64-unknown-linux-gnu -DLIBC_NAMESPACE=__llvm_libc_23_0_0_git -I/home/gha/actions-runner/_work/llvm-project/llvm-project/libc -I/home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libc -isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libc/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Xclang -fno-pch-timestamp -O3 -DNDEBUG -std=gnu++17 -UNDEBUG -mavx2 -mfma -D__LIBC_USE_BUILTIN_ISNAN -msse4.2 -DLIBC_QSORT_IMPL=LIBC_QSORT_QUICK_SORT -DLIBC_COPT_STRING_LENGTH_IMPL=clang_vector -DLIBC_COPT_FIND_FIRST_CHARACTER_IMPL=word -DLIBC_ADD_NULL_CHECKS -DLIBC_ERRNO_MODE=LIBC_ERRNO_MODE_DEFAULT -DLIBC_THREAD_MODE=LIBC_THREAD_MODE_PLATFORM -DLIBC_COPT_TIMEOUT_ENSURE_MONOTONICITY -DLIBC_CONF_WCTYPE_MODE=LIBC_WCTYPE_MODE_ASCII -DLIBC_COPT_RAW_MUTEX_DEFAULT_SPIN_COUNT=100 -fpie -ffixed-point -Wall -Wextra -Wconversion -Wno-sign-conversion -Wimplicit-fallthrough -Wwrite-strings -Wno-c99-extensions -Wno-gnu-imaginary-constant -Wno-pedantic -Wstrict-prototypes -Wextra-semi -Wnewline-eof -Wnonportable-system-include-path -Wthread-safety -DLIBC_TEST=UNIT -MD -MT libc/test/shared/CMakeFiles/libc.test.shared.shared_math_constexpr_test.__unit__.__NO_MISC_MATH_BASIC_OPS_OPT.__build__.dir/shared_math_constexpr_test.cpp.o -MF libc/test/shared/CMakeFiles/libc.test.shared.shared_math_constexpr_test.__unit__.__NO_MISC_MATH_BASIC_OPS_OPT.__build__.dir/shared_math_constexpr_test.cpp.o.d -o libc/test/shared/CMakeFiles/libc.test.shared.shared_math_constexpr_test.__unit__.__NO_MISC_MATH_BASIC_OPS_OPT.__build__.dir/shared_math_constexpr_test.cpp.o -c /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_constexpr_test.cpp
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_constexpr_test.cpp:11:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/shared/math.h:466:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/shared/math/sqrtf128.h:17:
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/math/sqrtf128.h:285:37: error: constexpr function never produces a constant expression [-Winvalid-constexpr]
285 | LIBC_INLINE LIBC_CONSTEXPR float128 sqrtf128(float128 x) {
| ^~~~~~~~
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/math/sqrtf128.h:289:17: note: non-constexpr function 'get_round' cannot be used in a constant expression
289 | uint32_t rm = fputil::get_round();
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/FPUtil/FEnvImpl.h:57:17: note: declared here
57 | LIBC_INLINE int get_round() { return fegetround(); }
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_constexpr_test.cpp:719:15: error: static assertion expression is not an integral constant expression
719 | static_assert(float128(0.0) == LIBC_NAMESPACE::shared::sqrtf128(float128(0.0)));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/math/sqrtf128.h:289:17: note: non-constexpr function 'get_round' cannot be used in a constant expression
289 | uint32_t rm = fputil::get_round();
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_constexpr_test.cpp:719:32: note: in call to 'sqrtf128(0.000000e+00)'
719 | static_assert(float128(0.0) == LIBC_NAMESPACE::shared::sqrtf128(float128(0.0)));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<command line>:1:24: note: expanded from macro 'LIBC_NAMESPACE'
1 | #define LIBC_NAMESPACE __llvm_libc_23_0_0_git
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/FPUtil/FEnvImpl.h:57:17: note: declared here
57 | LIBC_INLINE int get_round() { return fegetround(); }
| ^
2 errors generated.
```
</details>
<details>
<summary>libc/test/shared/CMakeFiles/libc.test.shared.shared_math_constexpr_test.__unit__.__NO_FMA_OPT.__NO_ROUND_OPT.__build__.dir/shared_math_constexpr_test.cpp.o</summary>
```
FAILED: libc/test/shared/CMakeFiles/libc.test.shared.shared_math_constexpr_test.__unit__.__NO_FMA_OPT.__NO_ROUND_OPT.__build__.dir/shared_math_constexpr_test.cpp.o
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin/clang++ --target=x86_64-unknown-linux-gnu -DLIBC_NAMESPACE=__llvm_libc_23_0_0_git -I/home/gha/actions-runner/_work/llvm-project/llvm-project/libc -I/home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libc -isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libc/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Xclang -fno-pch-timestamp -O3 -DNDEBUG -std=gnu++17 -UNDEBUG -D__LIBC_USE_BUILTIN_ISNAN -D__LIBC_MISC_MATH_BASIC_OPS_OPT -D__LIBC_USE_BUILTIN_FMAX_FMIN -DLIBC_QSORT_IMPL=LIBC_QSORT_QUICK_SORT -DLIBC_COPT_STRING_LENGTH_IMPL=clang_vector -DLIBC_COPT_FIND_FIRST_CHARACTER_IMPL=word -DLIBC_ADD_NULL_CHECKS -DLIBC_ERRNO_MODE=LIBC_ERRNO_MODE_DEFAULT -DLIBC_THREAD_MODE=LIBC_THREAD_MODE_PLATFORM -DLIBC_COPT_TIMEOUT_ENSURE_MONOTONICITY -DLIBC_CONF_WCTYPE_MODE=LIBC_WCTYPE_MODE_ASCII -DLIBC_COPT_RAW_MUTEX_DEFAULT_SPIN_COUNT=100 -fpie -ffixed-point -Wall -Wextra -Wconversion -Wno-sign-conversion -Wimplicit-fallthrough -Wwrite-strings -Wno-c99-extensions -Wno-gnu-imaginary-constant -Wno-pedantic -Wstrict-prototypes -Wextra-semi -Wnewline-eof -Wnonportable-system-include-path -Wthread-safety -DLIBC_TEST=UNIT -MD -MT libc/test/shared/CMakeFiles/libc.test.shared.shared_math_constexpr_test.__unit__.__NO_FMA_OPT.__NO_ROUND_OPT.__build__.dir/shared_math_constexpr_test.cpp.o -MF libc/test/shared/CMakeFiles/libc.test.shared.shared_math_constexpr_test.__unit__.__NO_FMA_OPT.__NO_ROUND_OPT.__build__.dir/shared_math_constexpr_test.cpp.o.d -o libc/test/shared/CMakeFiles/libc.test.shared.shared_math_constexpr_test.__unit__.__NO_FMA_OPT.__NO_ROUND_OPT.__build__.dir/shared_math_constexpr_test.cpp.o -c /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_constexpr_test.cpp
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_constexpr_test.cpp:11:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/shared/math.h:466:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/shared/math/sqrtf128.h:17:
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/math/sqrtf128.h:285:37: error: constexpr function never produces a constant expression [-Winvalid-constexpr]
285 | LIBC_INLINE LIBC_CONSTEXPR float128 sqrtf128(float128 x) {
| ^~~~~~~~
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/math/sqrtf128.h:289:17: note: non-constexpr function 'get_round' cannot be used in a constant expression
289 | uint32_t rm = fputil::get_round();
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/FPUtil/FEnvImpl.h:57:17: note: declared here
57 | LIBC_INLINE int get_round() { return fegetround(); }
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_constexpr_test.cpp:719:15: error: static assertion expression is not an integral constant expression
719 | static_assert(float128(0.0) == LIBC_NAMESPACE::shared::sqrtf128(float128(0.0)));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/math/sqrtf128.h:289:17: note: non-constexpr function 'get_round' cannot be used in a constant expression
289 | uint32_t rm = fputil::get_round();
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_constexpr_test.cpp:719:32: note: in call to 'sqrtf128(0.000000e+00)'
719 | static_assert(float128(0.0) == LIBC_NAMESPACE::shared::sqrtf128(float128(0.0)));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<command line>:1:24: note: expanded from macro 'LIBC_NAMESPACE'
1 | #define LIBC_NAMESPACE __llvm_libc_23_0_0_git
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/FPUtil/FEnvImpl.h:57:17: note: declared here
57 | LIBC_INLINE int get_round() { return fegetround(); }
| ^
2 errors generated.
```
</details>
<details>
<summary>libc/test/shared/CMakeFiles/libc.test.shared.shared_math_constexpr_test.__unit__.__NO_FMA_OPT.__NO_MISC_MATH_BASIC_OPS_OPT.__NO_ROUND_OPT.__build__.dir/shared_math_constexpr_test.cpp.o</summary>
```
FAILED: libc/test/shared/CMakeFiles/libc.test.shared.shared_math_constexpr_test.__unit__.__NO_FMA_OPT.__NO_MISC_MATH_BASIC_OPS_OPT.__NO_ROUND_OPT.__build__.dir/shared_math_constexpr_test.cpp.o
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin/clang++ --target=x86_64-unknown-linux-gnu -DLIBC_NAMESPACE=__llvm_libc_23_0_0_git -I/home/gha/actions-runner/_work/llvm-project/llvm-project/libc -I/home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libc -isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libc/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Xclang -fno-pch-timestamp -O3 -DNDEBUG -std=gnu++17 -UNDEBUG -D__LIBC_USE_BUILTIN_ISNAN -DLIBC_QSORT_IMPL=LIBC_QSORT_QUICK_SORT -DLIBC_COPT_STRING_LENGTH_IMPL=clang_vector -DLIBC_COPT_FIND_FIRST_CHARACTER_IMPL=word -DLIBC_ADD_NULL_CHECKS -DLIBC_ERRNO_MODE=LIBC_ERRNO_MODE_DEFAULT -DLIBC_THREAD_MODE=LIBC_THREAD_MODE_PLATFORM -DLIBC_COPT_TIMEOUT_ENSURE_MONOTONICITY -DLIBC_CONF_WCTYPE_MODE=LIBC_WCTYPE_MODE_ASCII -DLIBC_COPT_RAW_MUTEX_DEFAULT_SPIN_COUNT=100 -fpie -ffixed-point -Wall -Wextra -Wconversion -Wno-sign-conversion -Wimplicit-fallthrough -Wwrite-strings -Wno-c99-extensions -Wno-gnu-imaginary-constant -Wno-pedantic -Wstrict-prototypes -Wextra-semi -Wnewline-eof -Wnonportable-system-include-path -Wthread-safety -DLIBC_TEST=UNIT -MD -MT libc/test/shared/CMakeFiles/libc.test.shared.shared_math_constexpr_test.__unit__.__NO_FMA_OPT.__NO_MISC_MATH_BASIC_OPS_OPT.__NO_ROUND_OPT.__build__.dir/shared_math_constexpr_test.cpp.o -MF libc/test/shared/CMakeFiles/libc.test.shared.shared_math_constexpr_test.__unit__.__NO_FMA_OPT.__NO_MISC_MATH_BASIC_OPS_OPT.__NO_ROUND_OPT.__build__.dir/shared_math_constexpr_test.cpp.o.d -o libc/test/shared/CMakeFiles/libc.test.shared.shared_math_constexpr_test.__unit__.__NO_FMA_OPT.__NO_MISC_MATH_BASIC_OPS_OPT.__NO_ROUND_OPT.__build__.dir/shared_math_constexpr_test.cpp.o -c /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_constexpr_test.cpp
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_constexpr_test.cpp:11:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/shared/math.h:466:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/shared/math/sqrtf128.h:17:
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/math/sqrtf128.h:285:37: error: constexpr function never produces a constant expression [-Winvalid-constexpr]
285 | LIBC_INLINE LIBC_CONSTEXPR float128 sqrtf128(float128 x) {
| ^~~~~~~~
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/math/sqrtf128.h:289:17: note: non-constexpr function 'get_round' cannot be used in a constant expression
289 | uint32_t rm = fputil::get_round();
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/FPUtil/FEnvImpl.h:57:17: note: declared here
57 | LIBC_INLINE int get_round() { return fegetround(); }
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_constexpr_test.cpp:719:15: error: static assertion expression is not an integral constant expression
719 | static_assert(float128(0.0) == LIBC_NAMESPACE::shared::sqrtf128(float128(0.0)));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/math/sqrtf128.h:289:17: note: non-constexpr function 'get_round' cannot be used in a constant expression
289 | uint32_t rm = fputil::get_round();
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_constexpr_test.cpp:719:32: note: in call to 'sqrtf128(0.000000e+00)'
719 | static_assert(float128(0.0) == LIBC_NAMESPACE::shared::sqrtf128(float128(0.0)));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<command line>:1:24: note: expanded from macro 'LIBC_NAMESPACE'
1 | #define LIBC_NAMESPACE __llvm_libc_23_0_0_git
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/FPUtil/FEnvImpl.h:57:17: note: declared here
57 | LIBC_INLINE int get_round() { return fegetround(); }
| ^
2 errors generated.
```
</details>
<details>
<summary>libc/test/shared/CMakeFiles/libc.test.shared.shared_math_constexpr_test.__unit__.__NO_FMA_OPT.__NO_MISC_MATH_BASIC_OPS_OPT.__build__.dir/shared_math_constexpr_test.cpp.o</summary>
```
FAILED: libc/test/shared/CMakeFiles/libc.test.shared.shared_math_constexpr_test.__unit__.__NO_FMA_OPT.__NO_MISC_MATH_BASIC_OPS_OPT.__build__.dir/shared_math_constexpr_test.cpp.o
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin/clang++ --target=x86_64-unknown-linux-gnu -DLIBC_NAMESPACE=__llvm_libc_23_0_0_git -I/home/gha/actions-runner/_work/llvm-project/llvm-project/libc -I/home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libc -isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libc/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Xclang -fno-pch-timestamp -O3 -DNDEBUG -std=gnu++17 -UNDEBUG -D__LIBC_USE_BUILTIN_ISNAN -msse4.2 -DLIBC_QSORT_IMPL=LIBC_QSORT_QUICK_SORT -DLIBC_COPT_STRING_LENGTH_IMPL=clang_vector -DLIBC_COPT_FIND_FIRST_CHARACTER_IMPL=word -DLIBC_ADD_NULL_CHECKS -DLIBC_ERRNO_MODE=LIBC_ERRNO_MODE_DEFAULT -DLIBC_THREAD_MODE=LIBC_THREAD_MODE_PLATFORM -DLIBC_COPT_TIMEOUT_ENSURE_MONOTONICITY -DLIBC_CONF_WCTYPE_MODE=LIBC_WCTYPE_MODE_ASCII -DLIBC_COPT_RAW_MUTEX_DEFAULT_SPIN_COUNT=100 -fpie -ffixed-point -Wall -Wextra -Wconversion -Wno-sign-conversion -Wimplicit-fallthrough -Wwrite-strings -Wno-c99-extensions -Wno-gnu-imaginary-constant -Wno-pedantic -Wstrict-prototypes -Wextra-semi -Wnewline-eof -Wnonportable-system-include-path -Wthread-safety -DLIBC_TEST=UNIT -MD -MT libc/test/shared/CMakeFiles/libc.test.shared.shared_math_constexpr_test.__unit__.__NO_FMA_OPT.__NO_MISC_MATH_BASIC_OPS_OPT.__build__.dir/shared_math_constexpr_test.cpp.o -MF libc/test/shared/CMakeFiles/libc.test.shared.shared_math_constexpr_test.__unit__.__NO_FMA_OPT.__NO_MISC_MATH_BASIC_OPS_OPT.__build__.dir/shared_math_constexpr_test.cpp.o.d -o libc/test/shared/CMakeFiles/libc.test.shared.shared_math_constexpr_test.__unit__.__NO_FMA_OPT.__NO_MISC_MATH_BASIC_OPS_OPT.__build__.dir/shared_math_constexpr_test.cpp.o -c /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_constexpr_test.cpp
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_constexpr_test.cpp:11:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/shared/math.h:466:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/shared/math/sqrtf128.h:17:
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/math/sqrtf128.h:285:37: error: constexpr function never produces a constant expression [-Winvalid-constexpr]
285 | LIBC_INLINE LIBC_CONSTEXPR float128 sqrtf128(float128 x) {
| ^~~~~~~~
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/math/sqrtf128.h:289:17: note: non-constexpr function 'get_round' cannot be used in a constant expression
289 | uint32_t rm = fputil::get_round();
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/FPUtil/FEnvImpl.h:57:17: note: declared here
57 | LIBC_INLINE int get_round() { return fegetround(); }
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_constexpr_test.cpp:719:15: error: static assertion expression is not an integral constant expression
719 | static_assert(float128(0.0) == LIBC_NAMESPACE::shared::sqrtf128(float128(0.0)));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/math/sqrtf128.h:289:17: note: non-constexpr function 'get_round' cannot be used in a constant expression
289 | uint32_t rm = fputil::get_round();
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_constexpr_test.cpp:719:32: note: in call to 'sqrtf128(0.000000e+00)'
719 | static_assert(float128(0.0) == LIBC_NAMESPACE::shared::sqrtf128(float128(0.0)));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<command line>:1:24: note: expanded from macro 'LIBC_NAMESPACE'
1 | #define LIBC_NAMESPACE __llvm_libc_23_0_0_git
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/FPUtil/FEnvImpl.h:57:17: note: declared here
57 | LIBC_INLINE int get_round() { return fegetround(); }
| ^
2 errors generated.
```
</details>
<details>
<summary>libc/test/shared/CMakeFiles/libc.test.shared.shared_math_constexpr_test.__unit__.__NO_FMA_OPT.__build__.dir/shared_math_constexpr_test.cpp.o</summary>
```
FAILED: libc/test/shared/CMakeFiles/libc.test.shared.shared_math_constexpr_test.__unit__.__NO_FMA_OPT.__build__.dir/shared_math_constexpr_test.cpp.o
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin/clang++ --target=x86_64-unknown-linux-gnu -DLIBC_NAMESPACE=__llvm_libc_23_0_0_git -I/home/gha/actions-runner/_work/llvm-project/llvm-project/libc -I/home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libc -isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libc/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Xclang -fno-pch-timestamp -O3 -DNDEBUG -std=gnu++17 -UNDEBUG -D__LIBC_USE_BUILTIN_ISNAN -msse4.2 -D__LIBC_MISC_MATH_BASIC_OPS_OPT -D__LIBC_USE_BUILTIN_FMAX_FMIN -DLIBC_QSORT_IMPL=LIBC_QSORT_QUICK_SORT -DLIBC_COPT_STRING_LENGTH_IMPL=clang_vector -DLIBC_COPT_FIND_FIRST_CHARACTER_IMPL=word -DLIBC_ADD_NULL_CHECKS -DLIBC_ERRNO_MODE=LIBC_ERRNO_MODE_DEFAULT -DLIBC_THREAD_MODE=LIBC_THREAD_MODE_PLATFORM -DLIBC_COPT_TIMEOUT_ENSURE_MONOTONICITY -DLIBC_CONF_WCTYPE_MODE=LIBC_WCTYPE_MODE_ASCII -DLIBC_COPT_RAW_MUTEX_DEFAULT_SPIN_COUNT=100 -fpie -ffixed-point -Wall -Wextra -Wconversion -Wno-sign-conversion -Wimplicit-fallthrough -Wwrite-strings -Wno-c99-extensions -Wno-gnu-imaginary-constant -Wno-pedantic -Wstrict-prototypes -Wextra-semi -Wnewline-eof -Wnonportable-system-include-path -Wthread-safety -DLIBC_TEST=UNIT -MD -MT libc/test/shared/CMakeFiles/libc.test.shared.shared_math_constexpr_test.__unit__.__NO_FMA_OPT.__build__.dir/shared_math_constexpr_test.cpp.o -MF libc/test/shared/CMakeFiles/libc.test.shared.shared_math_constexpr_test.__unit__.__NO_FMA_OPT.__build__.dir/shared_math_constexpr_test.cpp.o.d -o libc/test/shared/CMakeFiles/libc.test.shared.shared_math_constexpr_test.__unit__.__NO_FMA_OPT.__build__.dir/shared_math_constexpr_test.cpp.o -c /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_constexpr_test.cpp
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_constexpr_test.cpp:11:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/shared/math.h:466:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/shared/math/sqrtf128.h:17:
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/math/sqrtf128.h:285:37: error: constexpr function never produces a constant expression [-Winvalid-constexpr]
285 | LIBC_INLINE LIBC_CONSTEXPR float128 sqrtf128(float128 x) {
| ^~~~~~~~
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/math/sqrtf128.h:289:17: note: non-constexpr function 'get_round' cannot be used in a constant expression
289 | uint32_t rm = fputil::get_round();
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/FPUtil/FEnvImpl.h:57:17: note: declared here
57 | LIBC_INLINE int get_round() { return fegetround(); }
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_constexpr_test.cpp:719:15: error: static assertion expression is not an integral constant expression
719 | static_assert(float128(0.0) == LIBC_NAMESPACE::shared::sqrtf128(float128(0.0)));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/math/sqrtf128.h:289:17: note: non-constexpr function 'get_round' cannot be used in a constant expression
289 | uint32_t rm = fputil::get_round();
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_constexpr_test.cpp:719:32: note: in call to 'sqrtf128(0.000000e+00)'
719 | static_assert(float128(0.0) == LIBC_NAMESPACE::shared::sqrtf128(float128(0.0)));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<command line>:1:24: note: expanded from macro 'LIBC_NAMESPACE'
1 | #define LIBC_NAMESPACE __llvm_libc_23_0_0_git
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/FPUtil/FEnvImpl.h:57:17: note: declared here
57 | LIBC_INLINE int get_round() { return fegetround(); }
| ^
2 errors generated.
```
</details>
<details>
<summary>libc/test/shared/CMakeFiles/libc.test.shared.shared_math_constexpr_test.__unit__.__build__.dir/shared_math_constexpr_test.cpp.o</summary>
```
FAILED: libc/test/shared/CMakeFiles/libc.test.shared.shared_math_constexpr_test.__unit__.__build__.dir/shared_math_constexpr_test.cpp.o
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin/clang++ --target=x86_64-unknown-linux-gnu -DLIBC_NAMESPACE=__llvm_libc_23_0_0_git -I/home/gha/actions-runner/_work/llvm-project/llvm-project/libc -I/home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libc -isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libc/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Xclang -fno-pch-timestamp -O3 -DNDEBUG -std=gnu++17 -UNDEBUG -mavx2 -mfma -D__LIBC_USE_BUILTIN_ISNAN -msse4.2 -D__LIBC_MISC_MATH_BASIC_OPS_OPT -D__LIBC_USE_BUILTIN_FMAX_FMIN -DLIBC_QSORT_IMPL=LIBC_QSORT_QUICK_SORT -DLIBC_COPT_STRING_LENGTH_IMPL=clang_vector -DLIBC_COPT_FIND_FIRST_CHARACTER_IMPL=word -DLIBC_ADD_NULL_CHECKS -DLIBC_ERRNO_MODE=LIBC_ERRNO_MODE_DEFAULT -DLIBC_THREAD_MODE=LIBC_THREAD_MODE_PLATFORM -DLIBC_COPT_TIMEOUT_ENSURE_MONOTONICITY -DLIBC_CONF_WCTYPE_MODE=LIBC_WCTYPE_MODE_ASCII -DLIBC_COPT_RAW_MUTEX_DEFAULT_SPIN_COUNT=100 -fpie -ffixed-point -Wall -Wextra -Wconversion -Wno-sign-conversion -Wimplicit-fallthrough -Wwrite-strings -Wno-c99-extensions -Wno-gnu-imaginary-constant -Wno-pedantic -Wstrict-prototypes -Wextra-semi -Wnewline-eof -Wnonportable-system-include-path -Wthread-safety -DLIBC_TEST=UNIT -MD -MT libc/test/shared/CMakeFiles/libc.test.shared.shared_math_constexpr_test.__unit__.__build__.dir/shared_math_constexpr_test.cpp.o -MF libc/test/shared/CMakeFiles/libc.test.shared.shared_math_constexpr_test.__unit__.__build__.dir/shared_math_constexpr_test.cpp.o.d -o libc/test/shared/CMakeFiles/libc.test.shared.shared_math_constexpr_test.__unit__.__build__.dir/shared_math_constexpr_test.cpp.o -c /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_constexpr_test.cpp
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_constexpr_test.cpp:11:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/shared/math.h:466:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/shared/math/sqrtf128.h:17:
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/math/sqrtf128.h:285:37: error: constexpr function never produces a constant expression [-Winvalid-constexpr]
285 | LIBC_INLINE LIBC_CONSTEXPR float128 sqrtf128(float128 x) {
| ^~~~~~~~
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/math/sqrtf128.h:289:17: note: non-constexpr function 'get_round' cannot be used in a constant expression
289 | uint32_t rm = fputil::get_round();
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/FPUtil/FEnvImpl.h:57:17: note: declared here
57 | LIBC_INLINE int get_round() { return fegetround(); }
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_constexpr_test.cpp:719:15: error: static assertion expression is not an integral constant expression
719 | static_assert(float128(0.0) == LIBC_NAMESPACE::shared::sqrtf128(float128(0.0)));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/math/sqrtf128.h:289:17: note: non-constexpr function 'get_round' cannot be used in a constant expression
289 | uint32_t rm = fputil::get_round();
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_constexpr_test.cpp:719:32: note: in call to 'sqrtf128(0.000000e+00)'
719 | static_assert(float128(0.0) == LIBC_NAMESPACE::shared::sqrtf128(float128(0.0)));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<command line>:1:24: note: expanded from macro 'LIBC_NAMESPACE'
1 | #define LIBC_NAMESPACE __llvm_libc_23_0_0_git
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/FPUtil/FEnvImpl.h:57:17: note: declared here
57 | LIBC_INLINE int get_round() { return fegetround(); }
| ^
2 errors generated.
```
</details>
<details>
<summary>libc/test/shared/CMakeFiles/libc.test.shared.shared_math_constexpr_test.__unit__.__NO_MISC_MATH_BASIC_OPS_OPT.__NO_ROUND_OPT.__build__.dir/shared_math_constexpr_test.cpp.o</summary>
```
FAILED: libc/test/shared/CMakeFiles/libc.test.shared.shared_math_constexpr_test.__unit__.__NO_MISC_MATH_BASIC_OPS_OPT.__NO_ROUND_OPT.__build__.dir/shared_math_constexpr_test.cpp.o
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin/clang++ --target=x86_64-unknown-linux-gnu -DLIBC_NAMESPACE=__llvm_libc_23_0_0_git -I/home/gha/actions-runner/_work/llvm-project/llvm-project/libc -I/home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libc -isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libc/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Xclang -fno-pch-timestamp -O3 -DNDEBUG -std=gnu++17 -UNDEBUG -mavx2 -mfma -D__LIBC_USE_BUILTIN_ISNAN -DLIBC_QSORT_IMPL=LIBC_QSORT_QUICK_SORT -DLIBC_COPT_STRING_LENGTH_IMPL=clang_vector -DLIBC_COPT_FIND_FIRST_CHARACTER_IMPL=word -DLIBC_ADD_NULL_CHECKS -DLIBC_ERRNO_MODE=LIBC_ERRNO_MODE_DEFAULT -DLIBC_THREAD_MODE=LIBC_THREAD_MODE_PLATFORM -DLIBC_COPT_TIMEOUT_ENSURE_MONOTONICITY -DLIBC_CONF_WCTYPE_MODE=LIBC_WCTYPE_MODE_ASCII -DLIBC_COPT_RAW_MUTEX_DEFAULT_SPIN_COUNT=100 -fpie -ffixed-point -Wall -Wextra -Wconversion -Wno-sign-conversion -Wimplicit-fallthrough -Wwrite-strings -Wno-c99-extensions -Wno-gnu-imaginary-constant -Wno-pedantic -Wstrict-prototypes -Wextra-semi -Wnewline-eof -Wnonportable-system-include-path -Wthread-safety -DLIBC_TEST=UNIT -MD -MT libc/test/shared/CMakeFiles/libc.test.shared.shared_math_constexpr_test.__unit__.__NO_MISC_MATH_BASIC_OPS_OPT.__NO_ROUND_OPT.__build__.dir/shared_math_constexpr_test.cpp.o -MF libc/test/shared/CMakeFiles/libc.test.shared.shared_math_constexpr_test.__unit__.__NO_MISC_MATH_BASIC_OPS_OPT.__NO_ROUND_OPT.__build__.dir/shared_math_constexpr_test.cpp.o.d -o libc/test/shared/CMakeFiles/libc.test.shared.shared_math_constexpr_test.__unit__.__NO_MISC_MATH_BASIC_OPS_OPT.__NO_ROUND_OPT.__build__.dir/shared_math_constexpr_test.cpp.o -c /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_constexpr_test.cpp
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_constexpr_test.cpp:11:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/shared/math.h:466:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/shared/math/sqrtf128.h:17:
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/math/sqrtf128.h:285:37: error: constexpr function never produces a constant expression [-Winvalid-constexpr]
285 | LIBC_INLINE LIBC_CONSTEXPR float128 sqrtf128(float128 x) {
| ^~~~~~~~
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/math/sqrtf128.h:289:17: note: non-constexpr function 'get_round' cannot be used in a constant expression
289 | uint32_t rm = fputil::get_round();
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/FPUtil/FEnvImpl.h:57:17: note: declared here
57 | LIBC_INLINE int get_round() { return fegetround(); }
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_constexpr_test.cpp:719:15: error: static assertion expression is not an integral constant expression
719 | static_assert(float128(0.0) == LIBC_NAMESPACE::shared::sqrtf128(float128(0.0)));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/math/sqrtf128.h:289:17: note: non-constexpr function 'get_round' cannot be used in a constant expression
289 | uint32_t rm = fputil::get_round();
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_constexpr_test.cpp:719:32: note: in call to 'sqrtf128(0.000000e+00)'
719 | static_assert(float128(0.0) == LIBC_NAMESPACE::shared::sqrtf128(float128(0.0)));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<command line>:1:24: note: expanded from macro 'LIBC_NAMESPACE'
1 | #define LIBC_NAMESPACE __llvm_libc_23_0_0_git
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/FPUtil/FEnvImpl.h:57:17: note: declared here
57 | LIBC_INLINE int get_round() { return fegetround(); }
| ^
2 errors generated.
```
</details>
<details>
<summary>libc/test/shared/CMakeFiles/libc.test.shared.shared_math_constexpr_test.__unit__.__NO_ROUND_OPT.__build__.dir/shared_math_constexpr_test.cpp.o</summary>
```
FAILED: libc/test/shared/CMakeFiles/libc.test.shared.shared_math_constexpr_test.__unit__.__NO_ROUND_OPT.__build__.dir/shared_math_constexpr_test.cpp.o
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin/clang++ --target=x86_64-unknown-linux-gnu -DLIBC_NAMESPACE=__llvm_libc_23_0_0_git -I/home/gha/actions-runner/_work/llvm-project/llvm-project/libc -I/home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libc -isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libc/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Xclang -fno-pch-timestamp -O3 -DNDEBUG -std=gnu++17 -UNDEBUG -mavx2 -mfma -D__LIBC_USE_BUILTIN_ISNAN -D__LIBC_MISC_MATH_BASIC_OPS_OPT -D__LIBC_USE_BUILTIN_FMAX_FMIN -DLIBC_QSORT_IMPL=LIBC_QSORT_QUICK_SORT -DLIBC_COPT_STRING_LENGTH_IMPL=clang_vector -DLIBC_COPT_FIND_FIRST_CHARACTER_IMPL=word -DLIBC_ADD_NULL_CHECKS -DLIBC_ERRNO_MODE=LIBC_ERRNO_MODE_DEFAULT -DLIBC_THREAD_MODE=LIBC_THREAD_MODE_PLATFORM -DLIBC_COPT_TIMEOUT_ENSURE_MONOTONICITY -DLIBC_CONF_WCTYPE_MODE=LIBC_WCTYPE_MODE_ASCII -DLIBC_COPT_RAW_MUTEX_DEFAULT_SPIN_COUNT=100 -fpie -ffixed-point -Wall -Wextra -Wconversion -Wno-sign-conversion -Wimplicit-fallthrough -Wwrite-strings -Wno-c99-extensions -Wno-gnu-imaginary-constant -Wno-pedantic -Wstrict-prototypes -Wextra-semi -Wnewline-eof -Wnonportable-system-include-path -Wthread-safety -DLIBC_TEST=UNIT -MD -MT libc/test/shared/CMakeFiles/libc.test.shared.shared_math_constexpr_test.__unit__.__NO_ROUND_OPT.__build__.dir/shared_math_constexpr_test.cpp.o -MF libc/test/shared/CMakeFiles/libc.test.shared.shared_math_constexpr_test.__unit__.__NO_ROUND_OPT.__build__.dir/shared_math_constexpr_test.cpp.o.d -o libc/test/shared/CMakeFiles/libc.test.shared.shared_math_constexpr_test.__unit__.__NO_ROUND_OPT.__build__.dir/shared_math_constexpr_test.cpp.o -c /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_constexpr_test.cpp
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_constexpr_test.cpp:11:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/shared/math.h:466:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libc/shared/math/sqrtf128.h:17:
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/math/sqrtf128.h:285:37: error: constexpr function never produces a constant expression [-Winvalid-constexpr]
285 | LIBC_INLINE LIBC_CONSTEXPR float128 sqrtf128(float128 x) {
| ^~~~~~~~
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/math/sqrtf128.h:289:17: note: non-constexpr function 'get_round' cannot be used in a constant expression
289 | uint32_t rm = fputil::get_round();
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/FPUtil/FEnvImpl.h:57:17: note: declared here
57 | LIBC_INLINE int get_round() { return fegetround(); }
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_constexpr_test.cpp:719:15: error: static assertion expression is not an integral constant expression
719 | static_assert(float128(0.0) == LIBC_NAMESPACE::shared::sqrtf128(float128(0.0)));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/math/sqrtf128.h:289:17: note: non-constexpr function 'get_round' cannot be used in a constant expression
289 | uint32_t rm = fputil::get_round();
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/test/shared/shared_math_constexpr_test.cpp:719:32: note: in call to 'sqrtf128(0.000000e+00)'
719 | static_assert(float128(0.0) == LIBC_NAMESPACE::shared::sqrtf128(float128(0.0)));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<command line>:1:24: note: expanded from macro 'LIBC_NAMESPACE'
1 | #define LIBC_NAMESPACE __llvm_libc_23_0_0_git
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/libc/src/__support/FPUtil/FEnvImpl.h:57:17: note: declared here
57 | LIBC_INLINE int get_round() { return fegetround(); }
| ^
2 errors generated.
```
</details>
If these failures are unrelated to your changes (for example tests are broken or flaky at HEAD), please open an issue at https://github.com/llvm/llvm-project/issues and add the `infrastructure` label.
https://github.com/llvm/llvm-project/pull/195623
More information about the libc-commits
mailing list