[PATCH] D93510: Fix llvm::Optional build breaks in MSVC using std::is_trivially_copyable

Aleksandr Platonov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 14 03:55:45 PST 2021


ArcsinX added a comment.

It seems that this patch breaks clangd build with GCC 5.4 (reverting this patch fixes the build)

  [2011/2198] Building CXX object tools/clang/tools/extra/clangd/CMakeFiles/obj.clangDaemon.dir/CodeComplete.cpp.o
  FAILED: /usr/bin/c++ -DGTEST_HAS_RTTI=0 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Itools/clang/tools/extra/clangd -I/mnt/d/work/llvm-project/clang-tools-extra/clangd -Itools/clang/tools/extra/clangd/../clang-tidy -I/mnt/d/work/llvm-project/clang/include -Itools/clang/include -Iinclude -I/mnt/d/work/llvm-project/llvm/include -fPIC -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wno-maybe-uninitialized -Wdelete-non-virtual-dtor -Wno-comment -fdiagnostics-color -ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -fno-strict-aliasing -O3 -DNDEBUG  -fno-exceptions -fno-rtti -std=c++14 -MD -MT tools/clang/tools/extra/clangd/CMakeFiles/obj.clangDaemon.dir/CodeComplete.cpp.o -MF tools/clang/tools/extra/clangd/CMakeFiles/obj.clangDaemon.dir/CodeComplete.cpp.o.d -o tools/clang/tools/extra/clangd/CMakeFiles/obj.clangDaemon.dir/CodeComplete.cpp.o -c /mnt/d/work/llvm-project/clang-tools-extra/clangd/CodeComplete.cpp
  In file included from /mnt/d/work/llvm-project/llvm/include/llvm/ADT/StringMap.h:16:0,
                   from /mnt/d/work/llvm-project/clang-tools-extra/clangd/CompileCommands.h:14,
                   from /mnt/d/work/llvm-project/clang-tools-extra/clangd/GlobalCompilationDatabase.h:12,
                   from /mnt/d/work/llvm-project/clang-tools-extra/clangd/Compiler.h:18,
                   from /mnt/d/work/llvm-project/clang-tools-extra/clangd/CodeComplete.h:18,
                   from /mnt/d/work/llvm-project/clang-tools-extra/clangd/CodeComplete.cpp:20:
  /mnt/d/work/llvm-project/llvm/include/llvm/ADT/StringMapEntry.h: In instantiation of ‘llvm::StringMapEntryStorage<ValueTy>::StringMapEntryStorage(size_t, InitTy&& ...) [with InitTy = {std::unique_ptr<clang::clangd::FileDistance, std::default_delete<clang::clangd::FileDistance> >&}; ValueTy = std::unique_ptr<clang::clangd::FileDistance>; size_t = long unsigned int]’:
  /mnt/d/work/llvm-project/llvm/include/llvm/ADT/StringMapEntry.h:71:41:   required from ‘static llvm::StringMapEntry<ValueTy>* llvm::StringMapEntry<ValueTy>::Create(llvm::StringRef, AllocatorTy&, InitTy&& ...) [with AllocatorTy = llvm::MallocAllocator; InitTy = {std::unique_ptr<clang::clangd::FileDistance, std::default_delete<clang::clangd::FileDistance> >&}; ValueTy = std::unique_ptr<clang::clangd::FileDistance>]’
  /mnt/d/work/llvm-project/llvm/include/llvm/ADT/StringMap.h:158:39:   required from ‘llvm::StringMap<ValueTy, AllocatorTy>::StringMap(const llvm::StringMap<ValueTy, AllocatorTy>&) [with ValueTy = std::unique_ptr<clang::clangd::FileDistance>; AllocatorTy = llvm::MallocAllocator]’
  /mnt/d/work/llvm-project/clang-tools-extra/clangd/FileDistance.h:93:7:   required from ‘struct std::is_trivially_copy_constructible<clang::clangd::URIDistance>’
  /mnt/d/work/llvm-project/llvm/include/llvm/ADT/Optional.h:36:78:   required from ‘class llvm::Optional<clang::clangd::URIDistance>’
  /mnt/d/work/llvm-project/clang-tools-extra/clangd/CodeComplete.cpp:1272:31:   required from here
  /mnt/d/work/llvm-project/llvm/include/llvm/ADT/StringMapEntry.h:47:49: error: use of deleted function ‘std::unique_ptr<_Tp, _Dp>::unique_ptr(const std::unique_ptr<_Tp, _Dp>&) [with _Tp = clang::clangd::FileDistance; _Dp = std::default_delete<clang::clangd::FileDistance>]’
           second(std::forward<InitTy>(initVals)...) {}
                                                   ^
  In file included from /usr/include/c++/5/memory:81:0,
                   from /mnt/d/work/llvm-project/llvm/include/llvm/ADT/Optional.h:23,
                   from /mnt/d/work/llvm-project/llvm/include/llvm/ADT/STLExtras.h:19,
                   from /mnt/d/work/llvm-project/clang-tools-extra/clangd/support/Context.h:17,
                   from /mnt/d/work/llvm-project/clang-tools-extra/clangd/support/Threading.h:12,
                   from /mnt/d/work/llvm-project/clang-tools-extra/clangd/CompileCommands.h:11,
                   from /mnt/d/work/llvm-project/clang-tools-extra/clangd/GlobalCompilationDatabase.h:12,
                   from /mnt/d/work/llvm-project/clang-tools-extra/clangd/Compiler.h:18,
                   from /mnt/d/work/llvm-project/clang-tools-extra/clangd/CodeComplete.h:18,
                   from /mnt/d/work/llvm-project/clang-tools-extra/clangd/CodeComplete.cpp:20:
  /usr/include/c++/5/bits/unique_ptr.h:356:7: note: declared here
         unique_ptr(const unique_ptr&) = delete;


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D93510/new/

https://reviews.llvm.org/D93510



More information about the llvm-commits mailing list