hhvm / homebrew-hhvm

Official Mac OS X Homebrew formula for HHVM
MIT License
81 stars 22 forks source link

error: no viable conversion from returned value of type 'typename AllocatorUniquePtr<...>' #74

Closed ljuzig closed 7 years ago

ljuzig commented 7 years ago

Description

[ 52%] Built target hack make: *** [all] Error 2

Context and Logs

Parameter Value
OS X Version: MacOS Sierra 10.12.2
Homebrew Version: Homebrew 1.1.11
Xcode Version: Xcode Version 8.2 (8C38)

Output of clang -v: _Apple LLVM version 8.0.0 (clang-800.0.42.1) Target: x8664-apple-darwin16.3.0 Thread model: posix InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

Build logs: https://gist.github.com/c80f86d9cc7b6a1e1fc6bb444e690900

jwatzman commented 7 years ago
In file included from /tmp/hhvm-20170316-90970-1ufe9sd/hhvm-3.18.1/hphp/runtime/base/autoload-handler.cpp:16:
In file included from /tmp/hhvm-20170316-90970-1ufe9sd/hhvm-3.18.1/hphp/runtime/base/autoload-handler.h:21:
/tmp/hhvm-20170316-90970-1ufe9sd/hhvm-3.18.1/hphp/runtime/base/req-containers.h:85:10: error: no viable conversion from returned value of type 'typename AllocatorUniquePtr<CufIter, Allocator<CufIter, Auto> >::type' (aka 'unique_ptr<HPHP::CufIter, allocator_delete<HPHP::req::Allocator<HPHP::CufIter, HPHP::type_scan::Action::Auto> > >') to function return type 'unique_ptr<HPHP::CufIter>'
  return folly::allocate_unique<T>(
         ^~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/hhvm-20170316-90970-1ufe9sd/hhvm-3.18.1/hphp/runtime/base/autoload-handler.cpp:106:18: note: in instantiation of function template specialization 'HPHP::req::make_unique<HPHP::CufIter>' requested here
  cufIter = req::make_unique<CufIter>();
                 ^
/usr/local/Cellar/llvm/4.0.0/bin/../include/c++/v1/memory:2454:49: note: candidate inherited constructor not viable: no known conversion from 'typename AllocatorUniquePtr<CufIter, Allocator<CufIter, Auto> >::type' (aka 'unique_ptr<HPHP::CufIter, allocator_delete<HPHP::req::Allocator<HPHP::CufIter, HPHP::type_scan::Action::Auto> > >') to 'nullptr_t' for 1st argument
    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR unique_ptr(nullptr_t) _NOEXCEPT
                                                ^
/tmp/hhvm-20170316-90970-1ufe9sd/hhvm-3.18.1/hphp/runtime/base/req-containers.h:77:15: note: constructor from base class 'unique_ptr<HPHP::CufIter, folly::allocator_delete<HPHP::req::Allocator<HPHP::CufIter, HPHP::type_scan::Action::Auto> > >' inherited here
  using Base::Base;
              ^
/tmp/hhvm-20170316-90970-1ufe9sd/hhvm-3.18.1/hphp/runtime/base/req-containers.h:75:8: note: candidate constructor (the implicit copy constructor) not viable: cannot bind base class object of type 'typename AllocatorUniquePtr<CufIter, Allocator<CufIter, Auto> >::type' (aka 'unique_ptr<HPHP::CufIter, allocator_delete<HPHP::req::Allocator<HPHP::CufIter, HPHP::type_scan::Action::Auto> > >') to derived class reference 'const HPHP::req::unique_ptr<HPHP::CufIter> &' for 1st argument
struct unique_ptr final : folly::AllocatorUniquePtr<T, Allocator<T>>::type {
       ^
/tmp/hhvm-20170316-90970-1ufe9sd/hhvm-3.18.1/hphp/runtime/base/req-containers.h:75:8: note: candidate constructor (the implicit move constructor) not viable: cannot bind base class object of type 'typename AllocatorUniquePtr<CufIter, Allocator<CufIter, Auto> >::type' (aka 'unique_ptr<HPHP::CufIter, allocator_delete<HPHP::req::Allocator<HPHP::CufIter, HPHP::type_scan::Action::Auto> > >') to derived class reference 'HPHP::req::unique_ptr<HPHP::CufIter> &&' for 1st argument
struct unique_ptr final : folly::AllocatorUniquePtr<T, Allocator<T>>::type {
       ^
/usr/local/Cellar/llvm/4.0.0/bin/../include/c++/v1/memory:2500:35: note: candidate template ignored: could not match 'auto_ptr' against 'unique_ptr'
        _LIBCPP_INLINE_VISIBILITY unique_ptr(auto_ptr<_Up>&& __p,
                                  ^
/usr/local/Cellar/llvm/4.0.0/bin/../include/c++/v1/memory:2485:9: note: candidate template ignored: inherited constructor cannot be used to move object
        unique_ptr(unique_ptr<_Up, _Ep>&& __u,
        ^
/tmp/hhvm-20170316-90970-1ufe9sd/hhvm-3.18.1/hphp/runtime/base/req-containers.h:77:15: note: constructor from base class 'unique_ptr<HPHP::CufIter, folly::allocator_delete<HPHP::req::Allocator<HPHP::CufIter, HPHP::type_scan::Action::Auto> > >' inherited here
  using Base::Base;
              ^
mofarrell commented 7 years ago

This should now be fixed. It was caused by llvm going to version 4.0.0