OSDN Git Service

Attempt to unbreak buidlbot lld-x86_64-darwin13 after r342555.
authorAndrea Di Biagio <Andrea_DiBiagio@sn.scee.net>
Wed, 19 Sep 2018 17:54:01 +0000 (17:54 +0000)
committerAndrea Di Biagio <Andrea_DiBiagio@sn.scee.net>
Wed, 19 Sep 2018 17:54:01 +0000 (17:54 +0000)
commiteb2ecf38ab4da54127ef867c03efd4d4103dbb20
treebd65b60ed53965d33908ed11faf87fdd246be729
parent76c0cf65821c47e73c28705342f07c225221940b
Attempt to unbreak buidlbot lld-x86_64-darwin13 after r342555.

The reason why build #25777 might have failed is because the SmallVector move
constructor is _not_ noexcept, and the stl implementation used by that buildbot
calls _VSTD::move_if_noexcept() (according to the backtrace).

OpcodeInfo has a default move constructor, and the copy constructor is deleted.
However, as far as I can see, SmallVector doesn't declare a noexcept move
constructor. So, what I believe it is happening here is that,
_VSTD::move_if_noexcept() returns an lvalue reference and not an rvalue
reference.
This eventually triggers a copy that fails to compile.

Hopefully, using a std::vector instead of SmallVector (as it was originally
suggested by Simon in the code review) should be enough to unbreak the buildbot.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@342561 91177308-0d34-0410-b5e6-96231b3b80d8
utils/TableGen/CodeGenSchedule.h