Quuxplusone / LLVMBugzillaTest

0 stars 0 forks source link

r253905 polly ScopInfo.cpp fails to build on Mountain Lion with Xcode 5.1 #25672

Open Quuxplusone opened 8 years ago

Quuxplusone commented 8 years ago
Bugzilla Link PR25673
Status NEW
Importance P normal
Reported by Jeremy Huddleston Sequoia (jeremyhu@apple.com)
Reported on 2015-11-29 17:49:43 -0800
Last modified on 2016-01-18 16:50:49 -0800
Version unspecified
Hardware PC All
CC llvm-bugs@lists.llvm.org, llvm@meinersbur.de
Fixed by commit(s)
Attachments main.log.bz2 (157048 bytes, application/x-bzip2)
Blocks
Blocked by
See also
Created attachment 15365
build log (compressed)

Recent polly fails to build on Mountain Lion with Xcode 5.1 (clang-503.0.35,
based on LLVM 3.4svn):

In file included from .../trunk/tools/polly/lib/Analysis/ScopInfo.cpp:21:
In file included from .../trunk/tools/polly/include/polly/Options.h:17:
In file included from .../trunk/include/llvm/Support/CommandLine.h:23:
In file included from .../trunk/include/llvm/ADT/ArrayRef.h:13:
In file included from .../trunk/include/llvm/ADT/Hashing.h:49:
In file included from .../trunk/include/llvm/Support/Host.h:17:
In file included from .../trunk/include/llvm/ADT/StringMap.h:17:
In file included from .../trunk/include/llvm/ADT/StringRef.h:14:
In file included from
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/algorithm:626:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/utility:284:11:
error: call to implicitly-deleted copy constructor of
'std::__1::unique_ptr<polly::ScopArrayInfo,
std::__1::default_delete<polly::ScopArrayInfo> >'
          second(__p.second)
          ^      ~~~~~~~~~~
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/memory:1641:31:
note: in instantiation of member function
'std::__1::pair<std::__1::pair<llvm::AssertingVH<const llvm::Value>, int>,
std::__1::unique_ptr<polly::ScopArrayInfo,
std::__1::default_delete<polly::ScopArrayInfo> > >::pair' requested here
            ::new((void*)__p) _Up(_VSTD::forward<_Args>(__args)...);
                              ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/memory:1568:18:
note: in instantiation of function template specialization
'std::__1::allocator<std::__1::pair<std::__1::pair<llvm::AssertingVH<const
llvm::Value>, int>, std::__1::unique_ptr<polly::ScopArrayInfo,
std::__1::default_delete<polly::ScopArrayInfo> > >
>::construct<std::__1::pair<std::__1::pair<llvm::AssertingVH<const
llvm::Value>, int>, std::__1::unique_ptr<polly::ScopArrayInfo,
std::__1::default_delete<polly::ScopArrayInfo> > >, const
std::__1::pair<std::__1::pair<llvm::AssertingVH<const llvm::Value>, int>,
std::__1::unique_ptr<polly::ScopArrayInfo,
std::__1::default_delete<polly::ScopArrayInfo> > > &>' requested here
            {__a.construct(__p, _VSTD::forward<_Args>(__args)...);}
                 ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/memory:1449:14:
note: in instantiation of function template specialization
'std::__1::allocator_traits<std::__1::allocator<std::__1::pair<std::__1::pair<llvm::AssertingVH<const
llvm::Value>, int>, std::__1::unique_ptr<polly::ScopArrayInfo,
std::__1::default_delete<polly::ScopArrayInfo> > > >
>::__construct<std::__1::pair<std::__1::pair<llvm::AssertingVH<const
llvm::Value>, int>, std::__1::unique_ptr<polly::ScopArrayInfo,
std::__1::default_delete<polly::ScopArrayInfo> > >, const
std::__1::pair<std::__1::pair<llvm::AssertingVH<const llvm::Value>, int>,
std::__1::unique_ptr<polly::ScopArrayInfo,
std::__1::default_delete<polly::ScopArrayInfo> > > &>' requested here
            {__construct(__has_construct<allocator_type, pointer, _Args...>(),
             ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/memory:1531:17:
note: in instantiation of function template specialization
'std::__1::allocator_traits<std::__1::allocator<std::__1::pair<std::__1::pair<llvm::AssertingVH<const
llvm::Value>, int>, std::__1::unique_ptr<polly::ScopArrayInfo,
std::__1::default_delete<polly::ScopArrayInfo> > > >
>::construct<std::__1::pair<std::__1::pair<llvm::AssertingVH<const
llvm::Value>, int>, std::__1::unique_ptr<polly::ScopArrayInfo,
std::__1::default_delete<polly::ScopArrayInfo> > >, const
std::__1::pair<std::__1::pair<llvm::AssertingVH<const llvm::Value>, int>,
std::__1::unique_ptr<polly::ScopArrayInfo,
std::__1::default_delete<polly::ScopArrayInfo> > > &>' requested here
                construct(__a, _VSTD::__to_raw_pointer(__end2-1), _VSTD::move_if_noexcept(*--__end1));
                ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/vector:839:21:
note: in instantiation of function template specialization
'std::__1::allocator_traits<std::__1::allocator<std::__1::pair<std::__1::pair<llvm::AssertingVH<const
llvm::Value>, int>, std::__1::unique_ptr<polly::ScopArrayInfo,
std::__1::default_delete<polly::ScopArrayInfo> > > >
>::__construct_backward<std::__1::pair<std::__1::pair<llvm::AssertingVH<const
llvm::Value>, int>, std::__1::unique_ptr<polly::ScopArrayInfo,
std::__1::default_delete<polly::ScopArrayInfo> > > *>' requested here
    __alloc_traits::__construct_backward(this->__alloc(), this->__begin_, this->__end_, __v.__begin_);
                    ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/vector:1528:5:
note: in instantiation of member function
'std::__1::vector<std::__1::pair<std::__1::pair<llvm::AssertingVH<const
llvm::Value>, int>, std::__1::unique_ptr<polly::ScopArrayInfo,
std::__1::default_delete<polly::ScopArrayInfo> > >,
std::__1::allocator<std::__1::pair<std::__1::pair<llvm::AssertingVH<const
llvm::Value>, int>, std::__1::unique_ptr<polly::ScopArrayInfo,
std::__1::default_delete<polly::ScopArrayInfo> > > >
>::__swap_out_circular_buffer' requested here
    __swap_out_circular_buffer(__v);
    ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/vector:1561:9:
note: in instantiation of function template specialization
'std::__1::vector<std::__1::pair<std::__1::pair<llvm::AssertingVH<const
llvm::Value>, int>, std::__1::unique_ptr<polly::ScopArrayInfo,
std::__1::default_delete<polly::ScopArrayInfo> > >,
std::__1::allocator<std::__1::pair<std::__1::pair<llvm::AssertingVH<const
llvm::Value>, int>, std::__1::unique_ptr<polly::ScopArrayInfo,
std::__1::default_delete<polly::ScopArrayInfo> > > >
>::__push_back_slow_path<std::__1::pair<std::__1::pair<llvm::AssertingVH<const
llvm::Value>, int>, std::__1::unique_ptr<polly::ScopArrayInfo,
std::__1::default_delete<polly::ScopArrayInfo> > > >' requested here
        __push_back_slow_path(_VSTD::move(__x));
        ^
.../trunk/include/llvm/ADT/MapVector.h:80:14: note: in instantiation of member
function
'std::__1::vector<std::__1::pair<std::__1::pair<llvm::AssertingVH<const
llvm::Value>, int>, std::__1::unique_ptr<polly::ScopArrayInfo,
std::__1::default_delete<polly::ScopArrayInfo> > >,
std::__1::allocator<std::__1::pair<std::__1::pair<llvm::AssertingVH<const
llvm::Value>, int>, std::__1::unique_ptr<polly::ScopArrayInfo,
std::__1::default_delete<polly::ScopArrayInfo> > > > >::push_back' requested
here
      Vector.push_back(std::make_pair(Key, ValueT()));
             ^
.../trunk/tools/polly/lib/Analysis/ScopInfo.cpp:2963:31: note: in instantiation
of member function 'llvm::MapVector<std::__1::pair<llvm::AssertingVH<const
llvm::Value>, int>, std::__1::unique_ptr<polly::ScopArrayInfo,
std::__1::default_delete<polly::ScopArrayInfo> >,
llvm::DenseMap<std::__1::pair<llvm::AssertingVH<const llvm::Value>, int>,
unsigned int, llvm::DenseMapInfo<std::__1::pair<llvm::AssertingVH<const
llvm::Value>, int> >,
llvm::detail::DenseMapPair<std::__1::pair<llvm::AssertingVH<const llvm::Value>,
int>, unsigned int> >,
std::__1::vector<std::__1::pair<std::__1::pair<llvm::AssertingVH<const
llvm::Value>, int>, std::__1::unique_ptr<polly::ScopArrayInfo,
std::__1::default_delete<polly::ScopArrayInfo> > >,
std::__1::allocator<std::__1::pair<std::__1::pair<llvm::AssertingVH<const
llvm::Value>, int>, std::__1::unique_ptr<polly::ScopArrayInfo,
std::__1::default_delete<polly::ScopArrayInfo> > > > > >::operator[]' requested
here
  auto &SAI = ScopArrayInfoMap[std::make_pair(BasePtr, Kind)];
                              ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/memory:2510:31:
note: copy constructor is implicitly deleted because
'unique_ptr<polly::ScopArrayInfo,
std::__1::default_delete<polly::ScopArrayInfo> >' has a user-declared move
constructor
    _LIBCPP_INLINE_VISIBILITY unique_ptr(unique_ptr&& __u) _NOEXCEPT
                              ^
Quuxplusone commented 8 years ago

Attached main.log.bz2 (157048 bytes, application/x-bzip2): build log (compressed)

Quuxplusone commented 8 years ago

Assuming that LLVM 3.4svn is the version of cc, and the svn checkout that is being compiled is more recent.

I don't have the platform available, but I just tried compiling with clang 3.8 (libstdc++) and could not reproduce the problem.

From the error message I'd conclude there is some problem with the STL implementation. A move should not require an implemented copy constructor.

Quuxplusone commented 8 years ago
(In reply to comment #1)
> Assuming that LLVM 3.4svn is the version of cc, and the svn checkout that is
> being compiled is more recent.

Yes.  The checkout is r253905.  The compiler is Xcode 5.1's clang (clang-
503.0.35, based on LLVM 3.4svn).

> I don't have the platform available, but I just tried compiling with clang
> 3.8 (libstdc++) and could not reproduce the problem.

I don't expect you'd hit the problem in that case either.  The workaround we're
using is blacklisting Xcode 5.1 and earlier which is causing our build system
to use OSS clang 3.7 to build llvm 3.8 instead.
Quuxplusone commented 8 years ago
(In reply to comment #2)
> I don't expect you'd hit the problem in that case either.  The workaround
> we're using is blacklisting Xcode 5.1 and earlier which is causing our build
> system to use OSS clang 3.7 to build llvm 3.8 instead.

Do I understand correctly that this is a bug in clang-503.0.35, not a problem
in Polly's source?
Quuxplusone commented 8 years ago

Yes, it's likely a bug in the STL in Xcode 5.1 that we probably need to figure out a workaround for.

I believe r252441 built fine with that configuration.

Quuxplusone commented 8 years ago

Move bugs to Polly product.