[compiler-rt] [mlir] [llvm] [flang] [clang] [clang-tools-extra] [libunwind] [libc] [lld] [libcxx] [lldb] Reland: [libc++][format] P2637R3: Member visit (std::basic_format_arg) #76449 (PR #79032)

Hristo Hristov via cfe-commits cfe-commits at lists.llvm.org
Sat Jan 27 03:33:25 PST 2024


H-G-Hristov wrote:

> I tried this branch on our Windows builders although I'm not sure if it's related or not to this patch:
> 
> ```
> # COMPILED WITH
> C:/b/s/w/ir/x/w/llvm_build/./bin/clang-cl.exe C:\b\s\w\ir\x\w\github-H-G-Hristov-llvm-project\libcxx\test\libcxx\fuzzing\random.pass.cpp --driver-mode=g++ --target=x86_64-pc-windows-msvc -fms-runtime-lib=static -nostdinc++ -I C:/b/s/w/ir/x/w/llvm_build/include/c++/v1 -I C:/b/s/w/ir/x/w/llvm_build/include/x86_64-pc-windows-msvc/c++/v1 -I C:/b/s/w/ir/x/w/github-H-G-Hristov-llvm-project/libcxx/test/support -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_STDIO_ISO_WIDE_SPECIFIERS -DNOMINMAX -std=c++26 -Werror -Wall -Wctad-maybe-unsupported -Wextra -Wshadow -Wundef -Wunused-template -Wno-unused-command-line-argument -Wno-attributes -Wno-pessimizing-move -Wno-noexcept-type -Wno-atomic-alignment -Wno-reserved-module-identifier -Wdeprecated-copy -Wdeprecated-copy-dtor -Wno-user-defined-literals -Wno-tautological-compare -Wsign-compare -Wunused-variable -Wunused-parameter -Wunreachable-code -Wno-unused-local-typedef -Wno-local-type-template-args -Wno-c++11-extensions -Wno-unknown-pragmas -Wno-pass-failed -Wno-mismatched-new-delete -Wno-redundant-move -Wno-self-move -D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -D_LIBCPP_ENABLE_EXPERIMENTAL -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_NONE -Werror=thread-safety -Wuser-defined-warnings  -llibc++experimental -nostdlib -L C:/b/s/w/ir/x/w/llvm_build/./lib/x86_64-pc-windows-msvc -llibc++ -llibcpmt -o C:\b\s\w\ir\x\w\llvm_build\runtimes\runtimes-x86_64-pc-windows-msvc-bins\test\libcxx\fuzzing\Output\random.pass.cpp.dir\t.tmp.exe
> # executed command: C:/b/s/w/ir/x/w/llvm_build/./bin/clang-cl.exe 'C:\b\s\w\ir\x\w\github-H-G-Hristov-llvm-project\libcxx\test\libcxx\fuzzing\random.pass.cpp' --driver-mode=g++ --target=x86_64-pc-windows-msvc -fms-runtime-lib=static -nostdinc++ -I C:/b/s/w/ir/x/w/llvm_build/include/c++/v1 -I C:/b/s/w/ir/x/w/llvm_build/include/x86_64-pc-windows-msvc/c++/v1 -I C:/b/s/w/ir/x/w/github-H-G-Hristov-llvm-project/libcxx/test/support -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_STDIO_ISO_WIDE_SPECIFIERS -DNOMINMAX -std=c++26 -Werror -Wall -Wctad-maybe-unsupported -Wextra -Wshadow -Wundef -Wunused-template -Wno-unused-command-line-argument -Wno-attributes -Wno-pessimizing-move -Wno-noexcept-type -Wno-atomic-alignment -Wno-reserved-module-identifier -Wdeprecated-copy -Wdeprecated-copy-dtor -Wno-user-defined-literals -Wno-tautological-compare -Wsign-compare -Wunused-variable -Wunused-parameter -Wunreachable-code -Wno-unused-local-typedef -Wno-local-type-template-args -Wno-c++11-extensions -Wno-unknown-pragmas -Wno-pass-failed -Wno-mismatched-new-delete -Wno-redundant-move -Wno-self-move -D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -D_LIBCPP_ENABLE_EXPERIMENTAL -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_NONE -Werror=thread-safety -Wuser-defined-warnings -llibc++experimental -nostdlib -L C:/b/s/w/ir/x/w/llvm_build/./lib/x86_64-pc-windows-msvc -llibc++ -llibcpmt -o 'C:\b\s\w\ir\x\w\llvm_build\runtimes\runtimes-x86_64-pc-windows-msvc-bins\test\libcxx\fuzzing\Output\random.pass.cpp.dir\t.tmp.exe'
> # .---command stderr------------
> # | In file included from C:\b\s\w\ir\x\w\github-H-G-Hristov-llvm-project\libcxx\test\libcxx\fuzzing\random.pass.cpp:16:
> # | In file included from C:/b/s/w/ir/x/w/llvm_build/include/c++/v1\cmath:319:
> # | In file included from C:/b/s/w/ir/x/w/llvm_build/include/c++/v1\math.h:301:
> # | In file included from C:\b\s\w\ir\cache\windows_sdk\Windows Kits\10\Include\10.0.19041.0\ucrt\math.h:11:
> # | C:\b\s\w\ir\cache\windows_sdk\Windows Kits\10\Include\10.0.19041.0\ucrt\corecrt_math.h:413:16: error: call to 'fpclassify' is ambiguous
> # |   413 |         return fpclassify(_X) == FP_NAN;
> # |       |                ^~~~~~~~~~
> # | C:\b\s\w\ir\x\w\github-H-G-Hristov-llvm-project\libcxx\test\libcxx\fuzzing\random.pass.cpp:166:12: note: in instantiation of function template specialization 'isnan<short>' requested here
> # |   166 |   if (std::isnan(res)) {
> # |       |            ^
> # | C:\b\s\w\ir\x\w\github-H-G-Hristov-llvm-project\libcxx\test\libcxx\fuzzing\random.pass.cpp:178:10: note: in instantiation of function template specialization 'helper<std::uniform_int_distribution<short>>' requested here
> # |   178 |   return helper<std::uniform_int_distribution<std::int16_t>>(data, size)       ||
> # |       |          ^
> # | C:\b\s\w\ir\cache\windows_sdk\Windows Kits\10\Include\10.0.19041.0\ucrt\corecrt_math.h:288:31: note: candidate function
> # |   288 |     _Check_return_ inline int fpclassify(_In_ float _X) throw()
> # |       |                               ^
> # | C:\b\s\w\ir\cache\windows_sdk\Windows Kits\10\Include\10.0.19041.0\ucrt\corecrt_math.h:293:31: note: candidate function
> # |   293 |     _Check_return_ inline int fpclassify(_In_ double _X) throw()
> # |       |                               ^
> # | C:\b\s\w\ir\cache\windows_sdk\Windows Kits\10\Include\10.0.19041.0\ucrt\corecrt_math.h:298:31: note: candidate function
> # |   298 |     _Check_return_ inline int fpclassify(_In_ long double _X) throw()
> # |       |                               ^
> # | C:\b\s\w\ir\cache\windows_sdk\Windows Kits\10\Include\10.0.19041.0\ucrt\corecrt_math.h:413:16: error: call to 'fpclassify' is ambiguous
> # |   413 |         return fpclassify(_X) == FP_NAN;
> # |       |                ^~~~~~~~~~
> # | C:\b\s\w\ir\x\w\github-H-G-Hristov-llvm-project\libcxx\test\libcxx\fuzzing\random.pass.cpp:166:12: note: in instantiation of function template specialization 'isnan<bool>' requested here
> # |   166 |   if (std::isnan(res)) {
> # |       |            ^
> # | C:\b\s\w\ir\x\w\github-H-G-Hristov-llvm-project\libcxx\test\libcxx\fuzzing\random.pass.cpp:180:10: note: in instantiation of function template specialization 'helper<std::bernoulli_distribution>' requested here
> # |   180 |          helper<std::bernoulli_distribution>(data, size)                       ||
> # |       |          ^
> # | C:\b\s\w\ir\cache\windows_sdk\Windows Kits\10\Include\10.0.19041.0\ucrt\corecrt_math.h:288:31: note: candidate function
> # |   288 |     _Check_return_ inline int fpclassify(_In_ float _X) throw()
> # |       |                               ^
> # | C:\b\s\w\ir\cache\windows_sdk\Windows Kits\10\Include\10.0.19041.0\ucrt\corecrt_math.h:293:31: note: candidate function
> # |   293 |     _Check_return_ inline int fpclassify(_In_ double _X) throw()
> # |       |                               ^
> # | C:\b\s\w\ir\cache\windows_sdk\Windows Kits\10\Include\10.0.19041.0\ucrt\corecrt_math.h:298:31: note: candidate function
> # |   298 |     _Check_return_ inline int fpclassify(_In_ long double _X) throw()
> # |       |                               ^
> # | In file included from C:\b\s\w\ir\x\w\github-H-G-Hristov-llvm-project\libcxx\test\libcxx\fuzzing\random.pass.cpp:20:
> # | In file included from C:/b/s/w/ir/x/w/llvm_build/include/c++/v1\random:1686:
> # | C:/b/s/w/ir/x/w/llvm_build/include/c++/v1\__random/clamp_to_integral.h:36:86: error: shift count is negative [-Werror,-Wshift-count-negative]
> # |    36 |   return _FloatBigger ? numeric_limits<_IntT>::max() : (numeric_limits<_IntT>::max() >> _Bits << _Bits);
> # |       |                                                                                      ^  ~~~~~
> # | C:/b/s/w/ir/x/w/llvm_build/include/c++/v1\__random/clamp_to_integral.h:46:27: note: in instantiation of function template specialization 'std::__max_representable_int_for_float<short, double, true, -38>' requested here
> # |    46 |   const _IntT __max_val = __max_representable_int_for_float<_IntT, _RealT>();
> # |       |                           ^
> # | C:/b/s/w/ir/x/w/llvm_build/include/c++/v1\__random/poisson_distribution.h:153:21: note: in instantiation of function template specialization 'std::__clamp_to_integral<short, double>' requested here
> # |   153 |         return std::__clamp_to_integral<result_type>(__tx);
> # |       |                     ^
> # | C:/b/s/w/ir/x/w/llvm_build/include/c++/v1\__random/poisson_distribution.h:83:12: note: in instantiation of function template specialization 'std::poisson_distribution<short>::operator()<std::mersenne_twister_engine<unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>>' requested here
> # |    83 |     return (*this)(__g, __p_);
> # |       |            ^
> # | C:\b\s\w\ir\x\w\github-H-G-Hristov-llvm-project\libcxx\test\libcxx\fuzzing\random.pass.cpp:165:23: note: in instantiation of function template specialization 'std::poisson_distribution<short>::operator()<std::mersenne_twister_engine<unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>>' requested here
> # |   165 |   volatile auto res = d(engine);
> # |       |                       ^
> # | C:\b\s\w\ir\x\w\github-H-G-Hristov-llvm-project\libcxx\test\libcxx\fuzzing\random.pass.cpp:181:10: note: in instantiation of function template specialization 'helper<std::poisson_distribution<short>>' requested here
> # |   181 |          helper<std::poisson_distribution<std::int16_t>>(data, size)           ||
> # |       |          ^
> # | In file included from C:\b\s\w\ir\x\w\github-H-G-Hristov-llvm-project\libcxx\test\libcxx\fuzzing\random.pass.cpp:20:
> # | In file included from C:/b/s/w/ir/x/w/llvm_build/include/c++/v1\random:1686:
> # | C:/b/s/w/ir/x/w/llvm_build/include/c++/v1\__random/clamp_to_integral.h:36:95: error: shift count is negative [-Werror,-Wshift-count-negative]
> # |    36 |   return _FloatBigger ? numeric_limits<_IntT>::max() : (numeric_limits<_IntT>::max() >> _Bits << _Bits);
> # |       |                                                                                               ^  ~~~~~
> # | 4 errors generated.
> # `-----------------------------
> # error: command failed with exit status: 1
> 
> --
> ```
> 
> https://logs.chromium.org/logs/fuchsia/led/phosek_google.com/62644843c966785c9dedf065a79d80df8734b4df5ff7703ea3c2a2b5643cec05/+/u/clang/test/stdout is the full log.

This issue was already reported a while back here: https://github.com/llvm/llvm-project/issues/70225

https://github.com/llvm/llvm-project/pull/79032


More information about the cfe-commits mailing list