[libcxx-commits] [PATCH] D131315: [WIP] [libc++] Implement P2273R3 (`constexpr` `unique_ptr`)

Igor Zhukov via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Sat Aug 6 01:15:02 PDT 2022


fsb4000 created this revision.
fsb4000 added a project: libc++.
Herald added subscribers: pengfei, arichardson.
Herald added a project: All.
fsb4000 requested review of this revision.
Herald added a subscriber: libcxx-commits.
Herald added a reviewer: libc++.

I started modifying tests and I faced an issue:

  llvm-project\build>python bin\llvm-lit.py ..\libcxx\test\std\utilities\smartptr\unique.ptr\unique.ptr.special\cmp_nullptr.pass.cpp -v
  
  $ "C:/Program Files/Microsoft Visual Studio/2022/Preview/VC/Tools/Llvm/x64/bin/clang-cl.exe" "C:\Dev\STL\llvm-project\libcxx\test\std\utilities\smartptr\unique.ptr\unique.ptr.special\cmp_nullptr.pass.cpp" "--driver-mode=g++" "--target=x86_64-pc-windows-msvc" "-nostdinc++" "-I" "C:/Dev/STL/llvm-project/build/include/c++/v1" "-I" "C:/Dev/STL/llvm-project/build/include/c++/v1" "-I" "C:/Dev/STL/llvm-project/libcxx/test/support" "-D_CRT_SECURE_NO_WARNINGS" "-D_CRT_NONSTDC_NO_WARNINGS" "-D_CRT_STDIO_ISO_WIDE_SPECIFIERS" "-DNOMINMAX" "-std=c++2b" "-Werror" "-Wall" "-Wextra" "-Wshadow" "-Wundef" "-Wno-unused-command-line-argument" "-Wno-attributes" "-Wno-pessimizing-move" "-Wno-c++11-extensions" "-Wno-noexcept-type" "-Wno-atomic-alignment" "-Wno-user-defined-literals" "-Wno-tautological-compare" "-Wsign-compare" "-Wunused-variable" "-Wunused-parameter" "-Wunreachable-code" "-Wno-unused-local-typedef" "-D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER" "-D_LIBCPP_ENABLE_EXPERIMENTAL" "-D_LIBCPP_DISABLE_AVAILABILITY" "-fcoroutines-ts" "-Werror=thread-safety" "-Wuser-defined-warnings" "-DTEST_WINDOWS_DLL" "-llibc++experimental" "-nostdlib" "-L" "C:/Dev/STL/llvm-project/build/lib" "-lc++" "-lmsvcrt" "-lmsvcprt" "-loldnames" "-o" "C:\Dev\STL\llvm-project\build\test\std\utilities\smartptr\unique.ptr\unique.ptr.special\Output\cmp_nullptr.pass.cpp.dir\t.tmp.exe"
  # command stderr:
  C:\Dev\STL\llvm-project\libcxx\test\std\utilities\smartptr\unique.ptr\unique.ptr.special\cmp_nullptr.pass.cpp:76:19: error: static_assert expression is not an integral constant expression
      static_assert(test());
                    ^~~~~~
  C:/Dev/STL/llvm-project/build/include/c++/v1\__functional/operations.h:372:21: note: comparison has unspecified value
          {return __x < __y;}
                      ^
  C:/Dev/STL/llvm-project/build/include/c++/v1\__memory/unique_ptr.h:630:12: note: in call to '&less<_P1>()->operator()(__x.get(), nullptr)'
      return less<_P1>()(__x.get(), nullptr);
             ^
  C:\Dev\STL\llvm-project\libcxx\test\std\utilities\smartptr\unique.ptr\unique.ptr.special\cmp_nullptr.pass.cpp:48:17: note: in call to 'operator<(p1, nullptr)'
      assert(!(p1 < nullptr));
                  ^
  C:\Dev\STL\llvm-project\libcxx\test\std\utilities\smartptr\unique.ptr\unique.ptr.special\cmp_nullptr.pass.cpp:76:19: note: in call to 'test()'
      static_assert(test());
                    ^
  1 error generated.
  
  error: command failed with exit status: 1

I don't undestand what's wrong :(


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D131315

Files:
  libcxx/docs/FeatureTestMacroTable.rst
  libcxx/docs/ReleaseNotes.rst
  libcxx/docs/Status/Cxx2bPapers.csv
  libcxx/include/__config
  libcxx/include/__memory/unique_ptr.h
  libcxx/include/version
  libcxx/test/std/language.support/support.limits/support.limits.general/memory.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
  libcxx/test/std/utilities/smartptr/unique.ptr/unique.ptr.special/cmp_nullptr.pass.cpp
  libcxx/test/support/test_macros.h
  libcxx/utils/generate_feature_test_macro_components.py

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D131315.450489.patch
Type: text/x-patch
Size: 23787 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20220806/3a15808b/attachment-0001.bin>


More information about the libcxx-commits mailing list